Conducting sessions with captured image data of physical activity and uploading using token-verifiable proxy uploader

ABSTRACT

A token-verifiable proxy uploader is disclosed. A token request may be transmitted from an end-user communication device for requesting an upload token from a hosted services server that is configured to authorize transmission of a first media file to a hosted proxy server. The upload token may be transmitted to the end-user communication device. Validation of the user of the end-user communication device may be conducted without the end-user device providing any credentials to the media sharing site and in which the end-user device is does not transmit any credentials specific to the media sharing site as part of the validation. The token validation call may be in response to the hosted proxy server receiving the upload token and either: (1) the first media file from the end-user communication device; or (2) a request from the end-user communication device to upload the first media file to the hosted proxy server.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of and priority to, U.S. ProvisionalPatent Application No. 61/874,248, entitled “CONDUCTING SESSIONS WITHCAPTURED IMAGE DATA OF PHYSICAL ACTIVITY AND UPLOADING USINGTOKEN-VERIFIABLE PROXY UPLOADER” filed Sep. 5, 2013. The content ofwhich is expressly incorporated herein by reference in its entirety forany and all non-limiting purposes.

BACKGROUND

Exercise and fitness have become increasingly popular and the benefitsfrom such activities are well known. Various types of technology havebeen incorporated into fitness and other athletic activities. Forexample, a wide variety of portable electronic devices are available foruse in fitness activity such as MP3 or other audio players, radios,portable televisions, DVD players, or other video playing devices,watches, GPS systems, pedometers, mobile telephones, pagers, beepers,etc. Many fitness enthusiasts or athletes use one or more of thesedevices when exercising or training to keep them entertained, provideperformance data or to keep them in contact with others, etc. Such usershave also demonstrated an interest in recording their athleticactivities and metrics associated therewith. Accordingly, varioussensors may be used to detect, store and/or transmit athleticperformance information. Oftentimes, however, athletic performanceinformation is presented in a vacuum or based on the overall athleticactivity. Exercisers may be interested in obtaining additionalinformation about their workouts.

SUMMARY

The following presents a general summary of example aspects to provide abasic understanding of example embodiments. This summary is not anextensive overview. It is not intended to identify key or criticalelements or to delineate scope of the invention. The following summarymerely presents some concepts of the invention in a general form as aprelude to the more detailed description provided below.

One or more aspects describe systems, apparatuses, computer readablemedia, and methods for using geographic information in connection withsporting activities. Sensors may be attached to users and/or clothing togenerate performance data. Sensors may include accelerometers, pressuresensors, gyroscopes and other sensors that can transform physicalactivity into electrical signals. The data, along location data, may betransmitted to a server. The server may maintain leader boards for usersand locations and allow users to search for other users and locations ofsporting activities. In some aspects of the invention users interactwith the server with mobile devices, such as mobile telephones.

In some example aspects, the systems, apparatuses, computer readablemedia, and methods may be configured to process input specifying a userattribute, adjust a performance zone based on the user attribute,receive data generated by at least one of an accelerometer and a forcesensor, determine whether the data is within the performance zone, andoutput the determination.

In some example aspects, the systems, apparatuses, computer readablemedia, and methods may include receiving data generated by a sensor(e.g., an accelerometer, a force sensor, temperature sensor, heart ratemonitor, etc.) as a user performs an athletic movement, and comparingthe data with comparison data of a plurality of playing styles todetermine a particular one of the playing styles most closely matchingthe data.

Further aspects relate to systems and methods regarding atoken-verifiable proxy uploader. In accordance with certain embodiments,a token request may be received at a hosted services server. The tokenrequest may be transmitted from an end-user communication device. Thetoken may be for requesting an upload token from the hosted servicesserver configured to authorize transmission of a first media file to ahosted proxy server.

Further aspects relate to validating the user or an end-usercommunication device, such as by using end-user credentials to thehosted services server. The upload token may be transmitted to theend-user communication device. In further embodiments, a tokenvalidation call may be received from the hosted proxy server and/oranother location. Validation of the user of the end-user communicationdevice may be conducted without the end-user device providing anycredentials to the media sharing site and in which the end-user deviceis does not transmit any credentials specific to the media sharing siteas part of the validation. The token validation call may be in responseto the hosted proxy server receiving the upload token and either: (1)the first media file from the end-user communication device; or (2) arequest from the end-user communication device to upload the first mediafile to the hosted proxy server.

A validation message may be sent from the hosted services server to thehosted proxy server configured to authorize transmission of the firstmedia file from the hosted proxy server to a media sharing site usingcredentials of the hosted services server. The transmitted media filemay comprise a plurality of sequential images, and image analytics maybe performed on at least a portion of the plurality of sequentialimages. This may be used to determine a tag for the media file. This mayoccur prior to, during, or after uploading the file to the media sharingsite.

The end-user communication device that uploaded the media file may be afirst end-user communication device and the file (or a portion thereof)may be stored on the hosted proxy server, wherein the file stored on thehosted proxy server and the media sharing site is retrievable the firstend-user communication device, and the file stored on the hosted proxyserver is not retrievable by a second end-user communication device.

Further embodiments are described below.

BRIEF DESCRIPTION OF THE DRAWINGS

To understand the example embodiments, it will now be described by wayof example, with reference to the accompanying drawings in which:

FIGS. 1A-B illustrate an example of a personal training system inaccordance with example embodiments.

FIGS. 2A-B illustrate example embodiments of a sensor system inaccordance with example embodiments.

FIGS. 3A-B illustrate an example of a computer interacting with at leastone sensor in accordance with example embodiments.

FIG. 4 illustrates examples of pod sensors that may be embedded andremoved from a shoe in accordance with example embodiments.

FIG. 5 illustrates example on-body configurations for a computer inaccordance with example embodiments.

FIGS. 6-7 illustrates example various off-body configurations for acomputer in accordance with example embodiments.

FIG. 8 illustrates an example display of a graphical user interface(GUI) presented by a display screen of a computer in accordance withexample embodiments.

FIG. 9 illustrates example performance metrics for user selection inaccordance with example embodiments.

FIG. 10 illustrates an example graphical user interface (GUI) inaccordance with one embodiment of the invention.

FIGS. 11A and 11B illustrate an example GUI that may be used in one ormore processes of calibrating sensors in accordance with exampleembodiments.

FIG. 12 illustrates example displays of a GUI presenting informationrelative to a session in accordance with example embodiments.

FIG. 13 illustrates an example display of a GUI providing a user withinformation about their performance metrics during a session inaccordance with example embodiments.

FIG. 14 illustrates example displays of a GUI presenting informationabout a user's virtual card (vcard) in accordance with exampleembodiments.

FIG. 15 illustrates an example user profile display of a GUI presentinga user profile in accordance with example embodiments.

FIG. 16 illustrates a further example of user profile display presentingadditional information about the user in accordance with exampleembodiments.

FIGS. 17-20 illustrate further example displays of a GUI for displayingperformance metrics to a user in accordance with example embodiments.

FIG. 21 illustrates example freestyle displays of a GUI providinginformation on freestyle user movement in accordance with exampleembodiments.

FIG. 22 illustrates example training displays presenting user-selectabletraining sessions in accordance with example embodiments.

FIGS. 23-26 illustrate example training sessions in accordance withexample embodiments.

FIGS. 27-30 illustrate display screens for GUIs for a basketballshooting training session in accordance with example embodiments.

FIG. 31 illustrates an example display of a GUI informing the user ofshooting milestones in accordance with example embodiments.

FIG. 32 illustrates example signature moves displays for a GUI promptinga user to perform a drill to imitate a professional athlete's signaturemove in accordance with example embodiments.

FIG. 33 illustrates example displays of a GUI for searching for otherusers and/or professional athletes for comparison of performance metricsin accordance with example embodiments.

FIGS. 34-35 illustrate example displays for comparing a user'sperformance metrics to other individuals in accordance with exampleembodiments.

FIG. 36 illustrates a flow diagram of an example method for determiningwhether physical data obtained monitoring a user performing a physicalactivity is within a performance zone in accordance with exampleembodiments.

FIG. 37 illustrates two example GUI displays for identifying nearbybasketball courts.

FIG. 38 illustrates an example GUI for obtaining activity informationabout other participants.

FIG. 39 shows a process that may be used to find locations of sportingactivities, in accordance with an embodiment of the invention.

FIG. 40 illustrates a process of sharing performance data, in accordancewith an embodiment of the invention.

FIG. 41 illustrates a process that may be used to track and compareperformance data in accordance with an embodiment of the invention.

FIG. 42 is a flowchart of an example method that may be utilized inaccordance with various embodiments.

FIGS. 43A and 43B graphically illustrate example embodiments of usingproxy systems in accordance with various embodiments. Specifically,FIGS. 43A and 43B provide two similar, but distinct, implementations ofusing proxy systems in accordance with certain embodiments.

FIG. 44 is an example network configuration that may be used inconjunction with example token-verifiable proxy uploaders in accordancewith various embodiments.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments in which thedisclosure may be practiced. It is to be understood that otherembodiments may be utilized and structural and functional modificationsmay be made without departing from the scope and spirit of the presentdisclosure. Further, headings within this disclosure should not beconsidered as limiting aspects of the disclosure. Those skilled in theart with the benefit of this disclosure will appreciate that the exampleembodiments are not limited to the example headings.

I. Example Personal Training System

A. Illustrative Computing Devices

FIG. 1A illustrates an example of a personal training system 100 inaccordance with example embodiments. Example system 100 may include oneor more electronic devices, such as computer 102. Computer 102 maycomprise a mobile terminal, such as a telephone, music player, tablet,netbook or any portable device. In other embodiments, computer 102 maycomprise a set-top box (STB), desktop computer, digital videorecorder(s) (DVR), computer server(s), and/or any other desiredcomputing device. In certain configurations, computer 102 may comprise agaming console, such as for example, a Microsoft® XBOX, Sony®Playstation, and/or a Nintendo® Wii gaming consoles. Those skilled inthe art will appreciate that these are merely example consoles fordescriptive purposes and this disclosure is not limited to any consoleor device.

Turning briefly to FIG. 1B, computer 102 may include computing unit 104,which may comprise at least one processing unit 106. Processing unit 106may be any type of processing device for executing softwareinstructions, such as for example, a microprocessor device. Computer 102may include a variety of non-transitory computer readable media, such asmemory 108. Memory 108 may include, but is not limited to, random accessmemory (RAM) such as RAM 110, and/or read only memory (ROM), such as ROM112. Memory 108 may include any of: electronically erasable programmableread only memory (EEPROM), flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical disk storage,magnetic storage devices, or any other medium that can be used to storethe desired information and that can be accessed by computer 102.

The processing unit 106 and the system memory 108 may be connected,either directly or indirectly, through a bus 114 or alternatecommunication structure to one or more peripheral devices. For example,the processing unit 106 or the system memory 108 may be directly orindirectly connected to additional memory storage, such as a hard diskdrive 116, a removable magnetic disk drive, an optical disk drive 118,and a flash memory card. The processing unit 106 and the system memory108 also may be directly or indirectly connected to one or more inputdevices 120 and one or more output devices 122. The output devices 122may include, for example, a display device 136, television, printer,stereo, or speakers. In some embodiments one or more display devices maybe incorporated into eyewear. The display devices incorporated intoeyewear may provide feedback to users. Eyewear incorporating one or moredisplay devices also provides for a portable display system. The inputdevices 120 may include, for example, a keyboard, touch screen, a remotecontrol pad, a pointing device (such as a mouse, touchpad, stylus,trackball, or joystick), a scanner, a camera or a microphone. In thisregard, input devices 120 may comprise one or more sensors configured tosense, detect, and/or measure athletic movement from a user, such asuser 124, shown in FIG. 1A.

Looking again to FIG. 1A, image-capturing device 126 and/or sensor 128may be utilized in detecting and/or measuring athletic movements of user124. In one embodiment, data obtained from image-capturing device 126 orsensor 128 may directly detect athletic movements, such that the dataobtained from image-capturing device 126 or sensor 128 is directlycorrelated to a motion parameter. Yet, in other embodiments, data fromimage-capturing device 126 and/or sensor 128 may be utilized incombination, either with each other or with other sensors to detectand/or measure movements. Thus, certain measurements may be determinedfrom combining data obtained from two or more devices. Image-capturingdevice 126 and/or sensor 128 may include or be operatively connected toone or more sensors, including but not limited to: an accelerometer, agyroscope, a location-determining device (e.g., GPS), light sensor,temperature sensor (including ambient temperature and/or bodytemperature), heart rate monitor, image-capturing sensor, moisturesensor and/or combinations thereof. Example uses of illustrative sensors126, 128 are provided below in Section I.C, entitled “IllustrativeSensors.” Computer 102 may also use touch screens or image capturingdevice to determine where a user is pointing to make selections from agraphical user interface. One or more embodiments may utilize one ormore wired and/or wireless technologies, alone or in combination,wherein examples of wireless technologies include Bluetooth®technologies, Bluetooth® low energy technologies, and/or ANTtechnologies.

B. Illustrative Network

Computer 102, computing unit 104, and/or any other electronic devicesmay be directly or indirectly connected to one or more networkinterfaces, such as example interface 130 (shown in FIG. 1B) forcommunicating with a network, such as network 132. In the example ofFIG. 1B, network interface 130, may comprise a network adapter ornetwork interface card (NIC) configured to translate data and controlsignals from the computing unit 104 into network messages according toone or more communication protocols, such as the Transmission ControlProtocol (TCP), the Internet Protocol (IP), and the User DatagramProtocol (UDP). These protocols are well known in the art, and thus willnot be discussed here in more detail. An interface 130 may employ anysuitable connection agent for connecting to a network, including, forexample, a wireless transceiver, a power line adapter, a modem, or anEthernet connection. Network 132, however, may be any one or moreinformation distribution network(s), of any type(s) or topology(s),alone or in combination(s), such as internet(s), intranet(s), cloud(s),LAN(s). Network 132 may be any one or more of cable, fiber, satellite,telephone, cellular, wireless, etc. Networks are well known in the art,and thus will not be discussed here in more detail. Network 132 may bevariously configured such as having one or more wired or wirelesscommunication channels to connect one or more locations (e.g., schools,businesses, homes, consumer dwellings, network resources, etc.), to oneor more remote servers 134, or to other computers, such as similar oridentical to computer 102. Indeed, system 100 may include more than oneinstance of each component (e.g., more than one computer 102, more thanone display 136, etc.).

Regardless of whether computer 102 or other electronic device withinnetwork 132 is portable or at a fixed location, it should be appreciatedthat, in addition to the input, output and storage peripheral devicesspecifically listed above, the computing device may be connected, suchas either directly, or through network 132 to a variety of otherperipheral devices, including some that may perform input, output andstorage functions, or some combination thereof. In certain embodiments,a single device may integrate one or more components shown in FIG. 1A.For example, a single device may include computer 102, image-capturingdevice 126, sensor 128, display 136 and/or additional components. In oneembodiment, sensor device 138 may comprise a mobile terminal having adisplay 136, image-capturing device 126, and one or more sensors 128.Yet, in another embodiment, image-capturing device 126, and/or sensor128 may be peripherals configured to be operatively connected to a mediadevice, including for example, a gaming or media system. Thus, it goesfrom the foregoing that this disclosure is not limited to stationarysystems and methods. Rather, certain embodiments may be carried out by auser 124 in almost any location.

C. Illustrative Sensors

Computer 102 and/or other devices may comprise one or more sensors 126,128 configured to detect and/or monitor at least one fitness parameterof a user 124. Sensors 126 and/or 128 may include, but are not limitedto: an accelerometer, a gyroscope, a location-determining device (e.g.,GPS), light sensor, temperature sensor (including ambient temperatureand/or body temperature), sleep pattern sensors, heart rate monitor,image-capturing sensor, moisture sensor and/or combinations thereof.Network 132 and/or computer 102 may be in communication with one or moreelectronic devices of system 100, including for example, display 136, animage capturing device 126 (e.g., one or more video cameras), and sensor128, which may be an infrared (IR) device. In one embodiment sensor 128may comprise an IR transceiver. For example, sensors 126, and/or 128 maytransmit waveforms into the environment, including towards the directionof user 124 and receive a “reflection” or otherwise detect alterationsof those released waveforms. In yet another embodiment, image-capturingdevice 126 and/or sensor 128 may be configured to transmit and/orreceive other wireless signals, such as radar, sonar, and/or audibleinformation. Those skilled in the art will readily appreciate thatsignals corresponding to a multitude of different data spectrums may beutilized in accordance with various embodiments. In this regard, sensors126 and/or 128 may detect waveforms emitted from external sources (e.g.,not system 100). For example, sensors 126 and/or 128 may detect heatbeing emitted from user 124 and/or the surrounding environment. Thus,image-capturing device 126 and/or sensor 128 may comprise one or morethermal imaging devices. In one embodiment, image-capturing device 126and/or sensor 128 may comprise an IR device configured to perform rangephenomenology. As a non-limited example, image-capturing devicesconfigured to perform range phenomenology are commercially availablefrom Flir Systems, Inc. of Portland, Oreg. Although image capturingdevice 126 and sensor 128 and display 136 are shown in direct(wirelessly or wired) communication with computer 102, those skilled inthe art will appreciate that any may directly communicate (wirelessly orwired) with network 132.

1. Multi-Purpose Electronic Devices

User 124 may possess, carry, and/or wear any number of electronicdevices, including sensory devices 138, 140, 142, and/or 144. In certainembodiments, one or more devices 138, 140, 142, 144 may not be speciallymanufactured for fitness or athletic purposes. Indeed, aspects of thisdisclosure relate to utilizing data from a plurality of devices, some ofwhich are not fitness devices, to collect, detect, and/or measureathletic data. In one embodiment, device 138 may comprise a portableelectronic device, such as a telephone or digital music player,including an IPOD®, IPAD®, or iPhone®, brand devices available fromApple, Inc. of Cupertino, Calif. or Zune® or Microsoft® Windows devicesavailable from Microsoft of Redmond, Wash. As known in the art, digitalmedia players can serve as both an output device for a computer (e.g.,outputting music from a sound file or pictures from an image file) and astorage device. In one embodiment, device 138 may be computer 102, yetin other embodiments, computer 102 may be entirely distinct from device138. Regardless of whether device 138 is configured to provide certainoutput, it may serve as an input device for receiving sensoryinformation. Devices 138, 140, 142, and/or 144 may include one or moresensors, including but not limited to: an accelerometer, a gyroscope, alocation-determining device (e.g., GPS), light sensor, temperaturesensor (including ambient temperature and/or body temperature), heartrate monitor, image-capturing sensor, moisture sensor and/orcombinations thereof. In certain embodiments, sensors may be passive,such as reflective materials that may be detected by image-capturingdevice 126 and/or sensor 128 (among others). In certain embodiments,sensors 144 may be integrated into apparel, such as athletic clothing.For instance, the user 124 may wear one or more on-body sensors 144 a-b.Sensors 144 may be incorporated into the clothing of user 124 and/orplaced at any desired location of the body of user 124. Sensors 144 maycommunicate (e.g., wirelessly) with computer 102, sensors 128, 138, 140,and 142, and/or camera 126. Examples of interactive gaming apparel aredescribed in U.S. patent application Ser. No. 10/286,396, filed Oct. 30,2002, and published as U.S. Pat. Pub, No. 2004/0087366, the contents ofwhich are incorporated herein by reference in its entirety for any andall non-limiting purposes. In certain embodiments, passive sensingsurfaces may reflect waveforms, such as infrared light, emitted byimage-capturing device 126 and/or sensor 128. In one embodiment, passivesensors located on user's 124 apparel may comprise generally sphericalstructures made of glass or other transparent or translucent surfaceswhich may reflect waveforms. Different classes of apparel may beutilized in which a given class of apparel has specific sensorsconfigured to be located proximate to a specific portion of the user's124 body when properly worn. For example, golf apparel may include oneor more sensors positioned on the apparel in a first configuration andyet soccer apparel may include one or more sensors positioned on apparelin a second configuration.

Devices 138-144, as well as any other electronic device disclosedherein, including any sensory device, may communicate with each other,either directly or through a network, such as network 132. Communicationbetween one or more of devices 138-144 may take place via computer 102.For example, two or more of devices 138-144 may be peripheralsoperatively connected to bus 114 of computer 102. In yet anotherembodiment, a first device, such as device 138 may communicate with afirst computer, such as computer 102 as well as another device, such asdevice 142, however, device 142 may not be configured to connect tocomputer 102 but may communicate with device 138. Further, one or moreelectronic devices may be configured to communicate through multiplecommunication pathways. For example, device 140 may be configured tocommunicate via a first wireless communication protocol with device 138and further communicate through a second wireless communication protocolwith a different device, such as for example, computer 102. Examplewireless protocols are discussed throughout this disclosure and areknown in the art. Those skilled in the art will appreciate that otherconfigurations are possible.

Some implementations of the example embodiments may alternately oradditionally employ computing devices that are intended to be capable ofa wide variety of functions, such as a desktop or laptop personalcomputer. These computing devices may have any combination of peripheraldevices or additional components as desired. Also, the components shownin FIG. 1B may be included in the server 134, other computers,apparatuses, etc.

2. Illustrative Apparel/Accessory Sensors

In certain embodiments, sensory devices 138, 140, 142 and/or 144 may beformed within or otherwise associated with user's 124 clothing oraccessories, including a watch, armband, wristband, necklace, shirt,shoe, or the like. Examples of shoe-mounted and wrist-worn devices(devices 140 and 142, respectively) are described immediately below,however, these are merely example embodiments and this disclosure shouldnot be limited to such.

i. Shoe-Mounted Device

In certain embodiments, sensory device 140 may comprise footwear whichmay include one or more sensors, including but not limited to: anaccelerometer, location-sensing components, such as GPS, and/or a forcesensor system. FIG. 2A illustrates one example embodiment of a sensorsystem 202 in accordance with example embodiments. In certainembodiments, system 202 may include a sensor assembly 204. Assembly 204may comprise one or more sensors, such as for example, an accelerometer,location-determining components, and/or force sensors. In theillustrated embodiment, assembly 204 incorporates a plurality ofsensors, which may include force-sensitive resistor (FSR) sensors 206.In yet other embodiments, other sensor(s) may be utilized. Port 208 maybe positioned within a sole structure 209 of a shoe. Port 208 mayoptionally be provided to be in communication with an electronic module210 (which may be in a housing 211) and a plurality of leads 212connecting the FSR sensors 206 to the port 208. Module 210 may becontained within a well or cavity in a sole structure of a shoe. Theport 208 and the module 210 include complementary interfaces 214, 216for connection and communication.

In certain embodiments, at least one force-sensitive resistor 206 shownin FIG. 2A may contain first and second electrodes or electricalcontacts 218, 220 and a force-sensitive resistive material 222 disposedbetween the electrodes 218, 220 to electrically connect the electrodes218, 220 together. When pressure is applied to the force-sensitivematerial 222, the resistivity and/or conductivity of the force-sensitivematerial 222 changes, which changes the electrical potential between theelectrodes 218, 220. The change in resistance can be detected by thesensor system 202 to detect the force applied on the sensor 216. Theforce-sensitive resistive material 222 may change its resistance underpressure in a variety of ways. For example, the force-sensitive material222 may have an internal resistance that decreases when the material iscompressed, similar to the quantum tunneling composites described ingreater detail below. Further compression of this material may furtherdecrease the resistance, allowing quantitative measurements, as well asbinary (on/off) measurements. In some circumstances, this type offorce-sensitive resistive behavior may be described as “volume-basedresistance,” and materials exhibiting this behavior may be referred toas “smart materials.” As another example, the material 222 may changethe resistance by changing the degree of surface-to-surface contact.This can be achieved in several ways, such as by using microprojectionson the surface that raise the surface resistance in an uncompressedcondition, where the surface resistance decreases when themicroprojections are compressed, or by using a flexible electrode thatcan be deformed to create increased surface-to-surface contact withanother electrode. This surface resistance may be the resistance betweenthe material 222 and the electrodes 218, 220 and/or the surfaceresistance between a conducting layer (e.g., carbon/graphite) and aforce-sensitive layer (e.g., a semiconductor) of a multi-layer material222. The greater the compression, the greater the surface-to-surfacecontact, resulting in lower resistance and enabling quantitativemeasurement. In some circumstances, this type of force-sensitiveresistive behavior may be described as “contact-based resistance.” It isunderstood that the force-sensitive resistive material 222, as definedherein, may be or include a doped or non-doped semiconducting material.

The electrodes 218, 220 of the FSR sensor 206 can be formed of anyconductive material, including metals, carbon/graphite fibers orcomposites, other conductive composites, conductive polymers or polymerscontaining a conductive material, conductive ceramics, dopedsemiconductors, or any other conductive material. The leads 212 can beconnected to the electrodes 218, 220 by any suitable method, includingwelding, soldering, brazing, adhesively joining, fasteners, or any otherintegral or non-integral joining method. Alternately, the electrode 218,220 and associated lead 212 may be formed of a single piece of the samematerial.

Other embodiments of the sensor system 202 may contain a differentquantity and/or configuration of sensors and generally include at leastone sensor. For example, in one embodiment, the system 202 includes amuch larger number of sensors, and in another embodiment, the system 202includes two sensors, one in the heel and one in the forefoot of a shoeor device to be close proximity to a user's foot. In addition, one ormore sensors 206 may communicate with the port 214 in a differentmanner, including any known type of wired or wireless communication,including Bluetooth and near-field communication. A pair of shoes may beprovided with sensor systems 202 in each shoe of the pair, and it isunderstood that the paired sensor systems may operate synergistically ormay operate independently of each other, and that the sensor systems ineach shoe may or may not communicate with each other. It is furtherunderstood that the sensor system 202 may be provided withcomputer-executable instructions stored on one or more computer-readablemedia that when executed by a processor control collection and storageof data (e.g., pressure data from interaction of a user's foot with theground or other contact surface), and that these executable instructionsmay be stored in and/or executed by the sensors 206, any module, and/oran external device, such as device 128, computer 102, server 134 and/ornetwork 132 of FIG. 1A.

ii. Wrist-Worn Device

As shown in FIG. 2B, device 226 (which may resemble or be sensory device142 shown in FIG. 1A) may be configured to be worn by user 124, such asaround a wrist, arm, ankle or the like. Device 226 may monitor athleticmovements of a user, including all-day activity of user 124. In thisregard, device assembly 226 may detect athletic movement during user's124 interactions with computer 102 and/or operate independently ofcomputer 102. For example, in one embodiment, device 226 may be an-allday activity monitor that measures activity regardless of the user'sproximity or interactions with computer 102. Device 226 may communicatedirectly with network 132 and/or other devices, such as devices 138and/or 140. In other embodiments, athletic data obtained from device 226may be utilized in determinations conducted by computer 102, such asdeterminations relating to which exercise programs are presented to user124. In one embodiment, device 226 may also wirelessly interact with amobile device, such as device 138 associated with user 124 or a remotewebsite such as a site dedicated to fitness or health related subjectmatter. At some predetermined time, the user may wish to transfer datafrom the device 226 to another location.

As shown in FIG. 2B, device 226 may include an input mechanism, such asa depressible input button 228 assist in operation of the device 226.The input button 228 may be operably connected to a controller 230and/or any other electronic components, such as one or more of theelements discussed in relation to computer 102 shown in FIG. 1B.Controller 230 may be embedded or otherwise part of housing 232. Housing232 may be formed of one or more materials, including elastomericcomponents and comprise one or more displays, such as display 234. Thedisplay may be considered an illuminable portion of the device 226. Thedisplay 234 may include a series of individual lighting elements orlight members such as LED lights 234 in an exemplary embodiment. The LEDlights may be formed in an array and operably connected to thecontroller 230. Device 226 may include an indicator system 236, whichmay also be considered a portion or component of the overall display234. It is understood that the indicator system 236 can operate andilluminate in conjunction with the display 234 (which may have pixelmember 235) or completely separate from the display 234. The indicatorsystem 236 may also include a plurality of additional lighting elementsor light members 238, which may also take the form of LED lights in anexemplary embodiment. In certain embodiments, indicator system mayprovide a visual indication of goals, such as by illuminating a portionof lighting members 238 to represent accomplishment towards one or moregoals.

A fastening mechanism 240 can be unlatched wherein the device 226 can bepositioned around a wrist of the user 124 and the fastening mechanism240 can be subsequently placed in a latched position. The user can wearthe device 226 at all times if desired. In one embodiment, fasteningmechanism 240 may comprise an interface, including but not limited to aUSB port, for operative interaction with computer 102 and/or devices138, 140.

In certain embodiments, device 226 may comprise a sensor assembly (notshown in FIG. 2B). The sensor assembly may comprise a plurality ofdifferent sensors. In an example embodiment, the sensor assembly maycomprise or permit operative connection to an accelerometer (includingin the form of a multi-axis accelerometer), heart rate sensor,location-determining sensor, such as a GPS sensor, and/or other sensors.Detected movements or parameters from device's 142 sensor(s), mayinclude (or be used to form) a variety of different parameters, metricsor physiological characteristics including but not limited to speed,distance, steps taken, calories, heart rate, sweat detection, effort,oxygen consumed, and/or oxygen kinetics. Such parameters may also beexpressed in terms of activity points or currency earned by the userbased on the activity of the user.

Various examples may be implemented using electronic circuitryconfigured to perform one or more functions. For example, with someembodiments of the invention, a computing device such as a smart phone,mobile device, computer, server, or other computing equipment may beimplemented using one or more application-specific integrated circuits(ASICs). More typically, however, components of various examples of theinvention will be implemented using a programmable computing deviceexecuting firmware or software instructions, or by some combination ofpurpose-specific electronic circuitry and firmware or softwareinstructions executing on a programmable computing device.

II. Monitoring System

FIGS. 3A-B illustrate examples of a computer interacting with at leastone sensor in accordance with example embodiments. In the depictedexample, the computer 102 may be implemented as a smart phone that maybe carried by the user. Example sensors may be worn on a user's body, besituated off-body, and may include any of the sensors discussed aboveincluding an accelerometer, a distributed sensor, a heart rate monitor,a temperature sensor, etc. In FIG. 3, a pod sensor 304 and a distributedsensor 306 (including, for example, sensor system 202 discussed abovehaving one or more FSRs 206) is shown. The pod sensor 304 may include anaccelerometer, a gyroscope, and/or other sensing technology. In someexamples, pod sensor 304 may at least one sensor to monitor data thatdoes not directly relate to user movement. For example, ambient sensorsmay be worn by the user or may be external to the user. Ambient sensorsmay include a temperature sensor, a compass, a barometer, a humiditysensor, or other type of sensor. Other types of sensors and combinationsof sensors configured to measure user movement may also be used. Also,computer 102 may incorporate one or more sensors.

The pod sensor 304, the distributed sensor 206, as well as other typesof sensors, may include a wireless transceiver to communicate with oneanother and the computer 102. For example, sensors 304 and 306 maycommunicate directly with the network 132, with other devices worn bythe user (e.g., a watch, arm band device, etc.), with sensors or devicesworn by a second user, an external device, etc. In an example, a sensorin a left shoe may communicate with a sensor in a right shoe. Also, oneshoe may include multiple sensors that communicate with one anotherand/or with a processor of the shoe. Further, a pair of shoes mayinclude a single processor that collects data from multiple sensorsassociated with the shoes, and a transceiver coupled to the singleprocessor may communicate sensor data to at least one of computer 102,network 132, and server 134. In another example, one or more sensors ofa shoe may communicate to a transceiver that communicates with at leastone of computer 102, network 132, and server 134. Further, sensorsassociated with a first user may communicate with sensors associatedwith a second user. For example, sensors in the first user's shoes maycommunicate with sensors in a second user's shoes. Other topographiesmay also be used.

The computer 102 may exchange data with the sensors, and also maycommunicate data received from the sensors via the network 132 to theserver 134 and/or to another computer 102. A user may wear head phonesor ear buds to receive audio information from the computer 102, directlyfrom one or more of the sensors, from the server 134, from the network132, from other locations, and combinations thereof. The head phones maybe wired or wireless. For example, a distributed sensor 306 maycommunicate data to head phones for audible output to the user.

In an example, a user may wear shoes that are each equipped with anaccelerometer, a force sensor or the like, to allow the computer 102and/or the server 134 to determine the individual movement and metricsof each foot or other body part (e.g., leg, hand, arm, individualfingers or toes, regions of a person's foot or leg, hips, chest,shoulders, head, eyes) alone or in combination with the systemsdescribed above with reference to FIGS. 1A-B and 2A-2B.

Processing of data may be distributed in any way, or performed entirelyat one shoe, at the computer 102, in the server 134, or combinationsthereof. In the description below, computer 102 may be described asperforming a function. Other devices, including server 134, acontroller, another computer, a processor in a shoe or other article ofclothing, or other device may performing the function instead of or inaddition to computer 102. For example, one or more sensors of each shoe(or other peripheral sensor) could be mated with a respective, localcontroller that performs some or all processing of raw signal output byone or more sensors. The controller's processing, at any given time, maybe subject to command and control of a higher tiered computing device(e.g., computer 102). That higher tiered device may receive and furtherprocess the processed sensor signals, from that one or pluralcontrollers, e.g., via one or more transceivers. Comparisons andcalculations may be made at one or more computing devices, includingsome or all of the above computing devices, with or without additionalcomputing devices. Sensors may sense desired conditions and generate rawsignals, the raw signals being processed so as to provide processeddata. The processed data may then be used for determining currentperformance metrics (e.g., current speed of travel, etc.) and thedeterminations may change depending on user input (e.g., how high did Ijump?) and/or programming (e.g., did the user do the indicated exerciseand, if that is detected, how is it qualified/quantified in the userexperience).

In an example, sensors 304 and 306 may process and store measurementdata, and forward the processed data (e.g., average acceleration,highest speed, total distance, etc.) to the computer 102 and/or theserver 134. The sensors 304 and 306 may also send raw data to thecomputer 102 and/or the server 134 for processing. Raw data, forexample, may include an acceleration signal measured by an accelerometerover time, a pressure signal measured by a pressure sensor over time,etc. Examples of multi-sensor apparel and the use of multiple sensors inathletic activity monitoring are described in U.S. application Ser. No.12/483,824, entitled “FOOTWEAR HAVING SENSOR SYSTEM,” and published asU.S. Publication No. 2010/0063778 A1 and U.S. application Ser. No.12/483,828, entitled “FOOTWEAR HAVING SENSOR SYSTEM,” and published asU.S. Publication No. 2010/0063779 A1. The content of the abovereferenced applications are incorporated herein by reference in theirentirety. In a particular example, an athlete may wear shoes 302 havingone or more force sensing systems, e.g., that utilize force-sensitiveresistor (FSR) sensors, as shown in FIG. 2A and described in the abovenoted patent publications. The shoe 302 may have multiple FSR sensors206 that detect forces at different regions of the user's foot (e.g., aheel, mid-sole, toes, etc.). Computer 102 may process data from FSRsensors 206 to determine balance of a user's foot and/or between auser's two feet. For example, computer 102 may compare a forcemeasurement by a FSR 206 from a left shoe relative to a forcemeasurement by a FSR 206 from a right shoe to determine balance and/orweight distribution.

FIG. 3B is another example data flow diagram in which computer 102interacts with at least one sensor processing system 308 to detect useractions. Sensor processing system 308 may be physically separate anddistinct from computer 102 and may communicate with computer 102 throughwired or wireless communication. Sensor processing system 308 mayinclude sensor 304, as shown, as well as other sensors (e.g., sensor306) instead of or in addition to sensor 304. In the depicted example,sensor system 308 may receive and process data from sensor 304 and FSRsensor 206. Computer 102 may receive input from a user about a type ofactivity session (e.g., cross training, basketball, running, etc.) theuser desires to perform. Instead or additionally, computer 102 maydetect a type of activity the user is performing or receive informationfrom another source about the type of activity being performed.

Based on activity type, computer 102 may identify one or more predefinedaction templates and communicate a subscription to sensor system 308.Action templates may be used to identify motions or actions that a usermay perform while performing the determined type of activity. Forexample, an action may correspond to a group of one or more events, suchas detecting that a user has taken a step to the right followed by astep to the left or detecting that a user has jumped while flicking hisor her wrist. Accordingly, different sets of one or more actiontemplates may be defined for different types of activities. For example,a first set of action templates defined for basketball may includedribbling, shooting a basketball, boxing out, performing a slam dunk,sprinting and the like. A second set of action templates defined forsoccer may include kicking a ball to make a shot, dribbling, stealing,heading the ball and the like. Action templates may correspond to anydesired level of granularity. In some examples, a particular type ofactivity may include 50-60 templates. In other examples, a type ofactivity may correspond to 20-30 templates. Any number of templates maybe defined as needed for a type of activity. In still other examples,the templates may be manually selected by a user rather than beingselected by the system.

Sensor subscriptions may allow sensor system 308 to select the sensorsfrom which data is to be received. The sensor processing system 308 maymanage subscriptions that are used at any particular time. Types ofsubscriptions may include force sensitive resistance data from one ormore force sensitive resistors, acceleration data from one or moreaccelerometers, summation information over multiple sensors (e.g.,summation of acceleration data, summation of force resistance data overone or more sensors, etc.), pressure maps, mean centered data, gravityadjusted sensor data, force sensitive resistance derivatives,acceleration derivatives, and the like and/or combinations thereof. Insome examples, a single subscription may correspond to a summation ofdata from multiple sensors. For example, if a template calls for a shiftin force to the forefoot region of a user's foot, a single subscriptionmay correspond to a summation of forces of all sensors in the forefootregion. Alternatively or additionally, force data for each of theforefoot force sensors may correspond to a distinct subscription.

For example, if sensor system 308 includes 4 force sensitive resistivesensors and an accelerometer, the subscriptions may specify which ofthose 5 sensors are monitored for sensor data. In another example,subscriptions may specify receiving/monitoring sensor data from a rightshoe accelerometer but not a left shoe accelerometer. In yet anotherexample, a subscription may include monitoring data from a wrist-wornsensor but not a heart rate sensor. Subscriptions may also specifysensor thresholds to adjust the sensitivity of a sensor system's eventdetection process. Thus, in some activities, sensor system 308 may beinstructed to detect all force peaks above a first specified threshold.For other activities, sensor system 308 may be instructed to detect allforce peaks above a second specified threshold. Use of different sensorsubscriptions may help a sensor system to conserve power if some sensorreadings are not needed for a particular activity. Accordingly,different activities and activity types may use different sensorsubscriptions.

Sensor processing system 308 may be configured to perform initialprocessing of raw sensor data to detect various granular events.Examples of events may include a foot strike or launch when jumping, amaximum acceleration during a time period, etc. Sensor system 308 maythen pass events to computer 102 for comparison to various templates todetermine whether an action has been performed. For example, sensorsystem 308 may identify one or more events and wirelessly communicateBLUETOOTH® Low Energy (BLE) packets, or other types of data, to computer102. In another example, sensor system 308 may instead or additionallysend raw sensor data.

Subsequent to receipt of the events and/or the raw sensor data, computer102 may perform post-match processing including determining variousactivity metrics such as repetitions, air-time, speed, distance and thelike. Activity classification may be performed by identifying variousevents and actions represented within data received from any number andtype of sensors. Accordingly, activity tracking and monitoring mayinclude determining whether one or more expected or known actions withinan activity type has been performed and metrics associated with thoseactions. In one example, actions may correspond to a series of one ormore low-level or granular events and may be detected using predefinedaction templates.

For example, using action templates, computer 102 may automaticallydetect when a user has performed a particular activity or a particularmotion expected during that activity. If a user is playing basketball,for instance, detecting that the user has jumped while flicking his orher wrist may indicate that the user has taken a shot. In anotherexample, detecting that a user has moved both feet outward while jumpingfollowed by moving both feet inward while jumping may register as a userperforming one repetition of a jumping jack exercise. A variety of othertemplates may be defined as desired to identify particular types ofactivities, actions or movements within types of activities.

FIG. 4 illustrates examples of pod sensors 304 that may be embedded andremoved from a shoe in accordance with example embodiments. The podsensor 304 may include a rechargeable battery that may be recharged wheninserted into a wall adapter 402. Wired or wireless charging of the podsensor 304 may be used. For example, the pod sensor 304 may beinductively charged. In some examples, a pod sensor 304-1 may beconfigured with an interface (e.g., Universal Serial Bus) permittinginsertion into a computer or other device for downloading and/orreceiving data. An interface of the pod sensor may provide for wired orwireless communication. For instance, software updates may be loadedonto the pod sensor when connected to a computer. Also, the pod sensormay wirelessly receive software updates. When physically coupled to acomputer 102 (or other device having a port), the pod sensor may chargeand communicate with the computer 102.

FIG. 5 illustrates example on-body configurations for the computer 102in accordance with example embodiments. Computer 102 may be configuredto be worn at desired locations on a user's body, such as, for example,a user's arm, leg, or chest, or otherwise integrated in clothing. Forexample, each article of clothing may have its own integrated computer.The computer may be a thin client, driven by the context, of what theuser is doing and otherwise equipped/networked. Computer 102 may also belocated apart from the user's body, as shown in FIGS. 6-7.

FIGS. 6-7 illustrates example various off-body configurations for thecomputer 102 in accordance with example embodiments. Computer 102 may beplaced in a docking station 602 to permit display of the GUI on a largerscreen and output of audio through a stereo system. As in otherexamples, computer 102 may respond to voice commands, via direct userinput (e.g., using a keyboard), via input from a remote control, orother manners to receive user commands. Other off-body configurationsmay include placing the computer 102 on a floor or table nearby where auser is exercising, storing the computer 102 in a workout bag or otherstorage container, placing the computer 102 on a tripod mount 702, andplacing the computer 102 on a wall mount 704. Other off-bodyconfigurations may also be used. When worn off-body, a user may wearhead-phone, ear buds, a wrist-worn device, etc. that may provide theuser with real-time updates. The pod sensor 304 and/or the distributedsensor 306 may wirelessly communicate with the computer 102 at theoff-body locations when in range, at periodic time intervals, whentriggered by the user, and/or may store data and upload the data to thecomputer 102 when in range or when instructed by the user at a latertime.

In an example, the user may interact with a graphical user interface(GUI) of the computer 102. FIG. 8 illustrates an example display of aGUI presented by a display screen of the computer 102 in accordance withexample embodiments. Home page display 802 of the GUI may present a homepage to provide the user with general information, to prompt the user toselect what type of physical activity session the user is interested inperforming, and to permit the user to retrieve information aboutpreviously completed sessions (e.g., basketball games, workouts, etc.).The display screen of the computer 102 may be touch sensitive and/or mayreceive user input through a keyboard or other input means. Forinstance, the user may tap a display screen or provide other input tocause the computer 102 to perform operations.

To obtain information about a previous session, the user may tap orotherwise select on a field 804 including the last session to cause thecomputer 102 to update the home page display 802 to display performancemetrics (e.g., vertical leap, total air, activity points, etc.) from atleast one previous session. For example, the selected field 804 mayexpand, as seen in FIG. 8, to display information about duration of thelast session, the user's top vertical leap, a total amount of time auser was in the air during the last session, and incentive points (e.g.,activity points) earned in the previous session. The computer 102 maydetermine performance metrics (e.g., speed, vertical leap, etc.) byprocessing data sensed by the sensors 304 and 306 or other sensingdevices.

Home page display 802 may prompt a user to select whether they wish tohave the computer 102 track one or more user performance metrics duringa workout or athletic activity session (e.g., track my game) byselecting field 806 or assist the user in improving their athleticskills (e.g., raise my game) by selecting field 808. FIGS. 9-21 discussthe former and FIGS. 22-31 discuss the latter.

FIG. 9 illustrates example performance metrics 900 for user selection inaccordance with example embodiments. In an example, a user may beinterested in monitoring their total play time, vertical leap, distance,and calories burned and/or other metrics, and may use the home pagedisplay 802 to select from the desired metrics 900 shown in FIG. 9. Themetrics may also vary based on type of athletic activity performed in asession. For example, home page display 802 may present certain defaultperformance metric selections, depending on the activity of the session.The user may provide input to change the default performance metricselections.

Other performance metrics than the ones shown in FIG. 9 may include atotal number of jumps, a number of vertical jumps above a certain height(e.g., above 3 inches), a number of sprints (e.g., speed above a certainrate, either user selected or specified by computer 102), a number offakes (e.g., quick changes in direction), a jump recovery (e.g., afastest time between two jumps), a work rate (e.g., may be a function ofaverage power multiplied by time length of workout session), a work ratelevel (e.g., low, medium, high), total steps, steps per unit time (e.g.,per minute), number of bursts (e.g., number of times a user exceeds aspeed threshold), balance, weight distribution (e.g., compare weightmeasured by a FSR 206 in a user's left shoe to weight measured by a FSR206 in a user's right shoe, as well as amount FRSs 206 in one shoe),average time duration of sessions, total session time, average number ofrepetitions per exercise, average number of points earned per session,total number of points, number of calories burned, or other performancemetrics. Additional performance metrics may also be used.

In an example, computer 102 may prompt the use to indicate which metricsto monitor for each type of session (e.g., baseball, soccer, basketball,etc.) and store the identified metrics in a user profile. Computer 102may also prompt the user for desired metrics at the beginning of eachsession. Further, computer 102 may track all of the performance metrics,but may only display the selected metrics to the user in the GUI. Forexample, computer 102 may only monitor certain base metrics (e.g., basedon battery life may be extended, to vary responsiveness, to avoid dataoverload, etc.). If the user desires to review metrics other than theones currently displayed by the GUI, the user may input the desiredmetrics and the computer 102 may update the GUI accordingly. The metricsbeing displayed may be changed at any time. The default metrics may bepresented once the session resumes or another session begins.

If computer 102 monitors more metrics than can be displayed, computer102 may later go into a lower level of monitoring (e.g., as resourcesare consumed together with warnings to user), down to and through baseand ultimately to one or no metrics being monitored. In an example,computer 102 may only display base metrics for a user, unless/untilconfigured otherwise by user. Based on resources, computer 102 mayreduce what is being displayed to only present the base performancemetrics or fewer metrics. Sensors may continue to monitor the otherperformance metrics, and data from these sensors may be later available(e.g., via web experience, etc.).

At the beginning of a session, computer 102 may calibrate the sensors ofthe shoes. FIGS. 10-11 illustrate an example of calibrating sensors inaccordance with example embodiments. Calibration may involve computer102 confirming ability to communicate directly or indirectly with thesensors (e.g., sensors 304 and 306), that the sensors are functioningproperly, that the sensors have adequate battery life, and to establishbaseline data. For example, computer 102 may communicate with (e.g.,send a wireless signal) pod sensor 304 and distributed sensor 306contained with a user's shoes. The pod sensor and the distributed sensormay reply with the requested data. Calibration may also occur at othertime instances (e.g., mid-session, at the end of a session, etc.).

During calibration, the GUI may prompt the user to stand still to takebaseline data measurements with pod sensor 304 and distributed sensor306 (e.g., acceleration, weight distribution, total weight, etc.), asseen in displays 1002A-B. Calibration may also prompt the user toindividually lift their feet to permit computer 102 to determine whichfoot is associated with which sensor data. Distributed sensor 306 mayalso be encoded with footwear information, such as, for example, shoetype, color, size, which foot (e.g., left or right), etc., that thecomputer 102 obtains during calibration. The computer 102 (or server134) may process the reply from the sensors 304 and 306, and update theGUI to inform the user of any issues and how to address those issues(e.g., change battery, etc.) or if the calibration was successful, asseen in display 1002C. In FIG. 11A, for instance, field 1104 shown tothe left of display 1102A includes example displays of battery life aswell as connectivity status (e.g., connected, not connected).Calibration may also occur at certain events, such as detecting removalof a pod 304. Based on the calibration, the display 1102B presents aweight distribution for the user and a gauge 1106 representing remainingbattery life. Either as part of calibrating one or more sensors and/oras a separate feature or function, a GUI may be configured to displayperformance data in substantially real-time (e.g., as fast as may bepermitted to capture (and/or process) and transmit the data fordisplay). FIG. 11B shows example GUIs that may be implemented inaccordance with one embodiment. As seen in FIG. 11B, display 1102C mayprovide one or more selectable activity parameters for displayingcaptured values relating to that selectable parameter. For example, auser desiring to view values relating to their vertical height during ajump may select the “vertical” icon (see icon 1108); yet other icons mayinclude, but are not limited to: quickness (which may display valuesrelating to steps per second and/or distance per second), pressure,and/or any other detectable parameter. In other embodiments, a pluralityof different parameters may be selected for simultaneous display. Yet infurther embodiments, the parameters are not required to be selected.Default parameters may be displayed absent a user input. Data relatingto the parameter(s) may be provided on display 1102C in real-time. Forexample, output 1110 indicates that the user has jumped “24.6 INCHES”.Values may be provided graphically, such as for example represented bygraph 112 indicating the value is 24.6 inches. In certain embodiments,outputting of values, such as through outputs 1110 and/or 1112, may showthe real-time data, in yet other embodiments, at least one of theoutputs 1110/1112 may show other values, such as historical values,desired goal values, and/or a maximum or minimum value. For example,graph 1112 may fluctuate depending on the user's current (e.g.,real-time) height; however, output 1110 may display the user's highestrecorded jump during that session or an all-time best. Outputting ofvalues or results may be correlated to physical objects and/or actions.For example, upon a user jumping a vertical height within a first range,such as between 24 inches to 30 inches, they may receive an indicationthat they could jump over a bicycle (see, e.g., display 1102D of FIG.11B). As another example, values relating to a user's quantity of stepsper second may be correlated to those of actual animals and displayed.Those skilled in the art will appreciate that other physical objects maybe utilized in accordance with different embodiments.

Computer 102 may prompt the user to start a session. FIG. 12 illustratesexample displays of the GUI presenting information relative to a sessionin accordance with example embodiments. Display 1202A may initiallyprompt the user to check in to a court and to start a session. The usermay also input a type of the session (e.g., practice, pickup game,league, half-court game, full court game, 3 on 3, 5 on 5, etc.). Display1202B may inform the user of a duration of the session as well asprompting the user to pause and/or end their session. Display 1202C maypresent current performance metrics of the user (e.g., top vertical, airtime, tempo, etc.). For viewing purposes, display 1202 may presentdefault or user-selected statistics, but a swipe or other gesture maytrigger a scroll, sequencing groups of predetermined number ofperformance metrics (e.g., 3 or other number, based on the performancemetrics that can be shown on the screen in portrait versus landscapeorientation) or otherwise brings up other performance metrics.

Computer 102 may also update display 1202 when a particular event isidentified. For example, if a new record (e.g., personal best) isidentified (e.g., new vertical max leap), computer 1202 may at least oneof update the display (e.g., color, information presented, etc.),vibrate, sound a noise indicative of the specific record (e.g., based oncolor change placement on shoe corresponding to a specific metric), orprompt the user that some record (e.g., any metric) has been reached.Display 1202 may also present a button for the user to select signifyingthat a record has been achieved. Display 1202B may prompt the user tocheck their performance metrics (e.g., check my stats), as furtherdescribed in FIG. 13.

FIG. 13 illustrates an example display of a GUI providing a user withinformation about their performance metrics during a session inaccordance with example embodiments. Display 1302 may presentinformation about a length of a current or previous session in field1304, various performance metrics (e.g., top vertical, total airtime,tempo, etc.) for the user in field 1308, as well as who the user playedwith during the session in field 1310. For example, computer 102, sensor304 or 306, or other device associated with a first user may exchange afirst user identifier with a computer 102, sensor 304 or 306, or otherdevice associated with a second user to that each computer may be awareof who participated in a session.

The computer 102 may also process the performance metrics to assign aplaying style to the user as indicated in field 1306. Field 1306 mayindicate that the user is a “hot streak” in response to determining thatthe user hustled hard for thirty minutes in a row. The box to the rightof field 1306 may indicate alternative playing styles. The computer 102may identify other types of playing styles. For example, the computer102 may assign a ‘silent assassin’ playing style when identifyingperiods of inactivity followed by explosive bursts, a ‘vortex’ playingstyle when a user exhibits little movement or jumping during thesession, a ‘cobra’ playing style when a user exhibits perpetual easymovement with huge bursts and jumps, a ‘track star’ playing style when auser is fast, has good stamina, and has a high peak speed, and a‘skywalker’ playing style when a user has a big vertical leap and a longhang time. In some examples, more than one style may be assigned to theuser, with a different style associated with one individual session ascompared with another session. Plural styles may be assigned anddisplayed for a single session.

The computer 102 may assign a particular playing style based onreceiving user data from at least one of pod sensor 304 (e.g.,accelerometer data), distributed sensor 306 (e.g., force data), or othersensors. The computer 102 may compare the user data with playing styledata for a plurality of different playing styles to determine which ofthe playing styles most closely matches the data. For example, thecomputer 102 may set performance metric thresholds for each of theplaying styles. Some playing styles may require that, at least onceduring the session, the user jumped a certain height, ran at a certainspeed, played for a certain amount of time, and/or performed othertasks. Other playing styles may require that the user data indicate thatthe user performed certain sequences of events (e.g., little movementfollowed by quick acceleration to at least a certain top speed). Someplaying styles may require that the user data indicate that the usermaintained thresholds for a certain amount of time (e.g., maintainedaverage speed over a threshold throughout a game).

In an example, a playing style may be assigned based on a data setobtained from a set of sensors including sensors worn at variouslocations on a user's body (e.g., accelerometers at the gluteus and orupper body to identify a “BANGER” playing style). Also, other,non-activity data may come into determining a playing style, such asuser profile data (e.g., user age, height, gender, etc.). For example,some playing styles may be gender specific or based on ambientconditions (e.g., a “POSTMAN” style because use plays in rain, sleet,snow, etc.).

A user or user group may define their own playing styles, based on acombination of metrics and analytics. The users or user groups maychange a name of the playing style, without changing the associatedmetrics and analytics. Playing styles may be updated automatically. Forexample, personal training system 100 may periodically update a playingstyle specified by system 100. In another example, system 100 mayautomatically update a playing style when the name of the playing styleis associated with a particular location (e.g., state, city, court), andthat playing style is referred to by a different name at anotherlocation (e.g., keep the designation consistent with local lingo).

In FIG. 13, display 1302 permits the user to share their performancemetrics with other users and/or to post to a social networking websiteby selecting field 1312. The user may also input a message (e.g., “checkout my vertical leap”) to accompany the performance metrics being sent.The computer 102 may distribute performance metric data of a currentand/or previous session and the message to the server 134 in response toa user request to share. The server 134 may incorporate the data and/ormessage in the social networking website and/or may distribute thedata/message to other desired or all users.

FIG. 14 illustrates example displays of the GUI presenting informationabout a user's virtual card (vcard) in accordance with exampleembodiments. The vcard may include information about a user's athletichistory. The vcard may include data on a user's performance metrics,sessions, and awards at individual sessions as well as averages of theperformance metrics. The vcard statistics display 1402A may indicate anumber of points a user has acquired (e.g., activity points or metrics),as well as running totals and/or top performances by the user. Theactivity points may a statistic indicating physical activity performedby a user. The server 134 and/or computer 102 may award activity pointsto the user upon achieving certain athletic milestones. The vcardsessions display 1402B may indicate a total amount of playtime andnumber of sessions a user has completed, as well as providing historicalinformation about completed sessions. The vcard sessions display 1402Bmay also indicate a playing style the user exhibited for each session aswell as a session length and date of the session. The vcard awardsdisplay 1402C may indicate awards the user has accrued over time. Forexample, the server 134 and/or computer 102 may award the user a flightclub award after accruing a total amount of loft time during thesessions.

Other example awards may be a “king of the court” award for a user whohas one or more top metrics at a specific court, a “flier mile” awardearned with one mile of flight time (or for other quanta of time anddistance), a “worldwide wes” award when a player participates insessions in multiple countries, an “ankle-breaker” award to those havingat least a certain top speed or quickest first step, a “jump king” awardfor a user having at least a certain vertical leap, a “24/7 baller”award for a user who plays a certain number of days in a row or at acertain number of different courts, an “ice man” award if a certainnumber of rivals follow a user, a “black mamba” award if an even greaternumber of rivals follow a user (compared to an ice-man), a “prodigy”award for a young player achieving certain performance metric levels,and an “old school” award for older players achieving certainperformance metric levels. Other types of awards may also be awarded.

FIG. 15 illustrates an example user profile display of the GUIpresenting a user profile in accordance with example embodiments. Theuser profile display 1502 may present information about the user, suchas height, weight, and position, playing style (e.g., “The SilentAssassin”), as well as other information. The user profile display 1502may also indicate one or more types of shoe worn by the user. The userprofile display 1502 may present information about the user's activity,and may permit the user to control sharing this information with otherusers. For example, the user may specify which other users can view userprofile information, or may make all of the user's informationaccessible to any other user. FIG. 16 illustrates further examples ofinformation about the user that may be presented in user profile display1502 in accordance with example embodiments.

FIGS. 17-20 illustrate further example displays of a GUI for displayingperformance metrics to a user in accordance with example embodiments.During, at the end of a session, or both, the computer 102 maycommunicate with at least one of pod sensor 304, distributed sensor 306,or other sensor, to obtain data to generate the performance metrics.Example displays of the GUI while capturing data are shown in FIG. 17,such as top vertical in display 1702A, total airtime in display 1702B,tempo statistics in display 1702C, and points in display 1702D. Scrollbar 1704 represents the progress in transferring data from the sensorsto computer 102.

FIG. 18A illustrates example leap displays relating to a user's verticalleap in accordance with example embodiments. The computer 102 may trackinformation on the user's vertical leap during an exercise session aswell as at what times during the session the leaps occurred. Thecomputer 102 may determine a user's vertical leap based on an amount ofloft time between when both feet of a user leave the ground and when afirst of the user's feet next contacts the ground. The computer 102 mayprocess accelerometer data from pod sensor 304 and/or force data fromdistributed sensor 306 to determine a moment when both of the user'sfeet are off the ground and when a first of the feet next contacts theground. The computer 102 may also compare user data from pod sensor 304and distributed sensor 306 with jump data to confirm that the useractually jumped and landed, rather than merely lifted their feet off ofthe ground or hung on a basketball rim (or other object) for apredetermined time. The jump data may be data generated to indicate whata force profile and/or acceleration profile should look like for someonewho actually jumped. The computer 102 may use a similarity metric whencomparing the user data to the jump data. If the user data is notsufficiently similar to the jump data, the computer 102 may determinethat the user data is not a jump and may not include the user data whendetermining a user's performance metrics (e.g., top or average verticalleap).

Provided that the computer 102 determines that the user data is for ajump, the computer 102 may process the user data to determine a verticalleap, a time of the vertical leap, a user's average vertical leapheight, maintain a running total of loft time for jumps, and/ordetermine which foot is dominant, as well as other metrics. The computer102 may identify a dominant foot based on the force data and/oraccelerometer data associated with each shoe. The force data and/oraccelerometer data may include timing information so that the computer102 can compare events in each shoe. The computer 102 may process theforce data and/or accelerometer data as well as the timing informationto determine which foot was last on the ground prior to a jump. Thecomputer 102 may identify a dominant foot based on the one that is laston the ground when a user jumps and/or the one associated with a user'slargest vertical leap. The computer 102 may also present leap display1802A including a user's top five vertical leaps and depict which foot,or both feet, was last on the ground immediately preceding the jump.Leap display 1802A may display any desired number of top leaps, whichmay be specified by the user or set by system 100. The number of topleaps may be based on an amount of time. For example, leap display 1802Amay present the top five leaps over the full time of a session, top fivein the most recent predetermined number of minutes or percentage oftotal session time, or based on the type of session (e.g., pick-upbasketball game as compared to an organized game). The leap display1802A or 1802B may also display vertical leaps over durations other thanby session, and may include, for example, month, week, all time, orother time ranges. Leap display 1802A or 1802B may also present a totalnumber of jumps, a cumulative amount of hang time, an average hang time,hang time corresponding to a highest vertical leap, or other informationrelating to jumping. Orientation of computer 102 may control which ofleap display 1802A and leap display 1802B is currently being presented.For example, a user may rotate computer 102 (e.g., 90 degrees) to changefrom presenting leap display 1802A (e.g., a portrait orientation) topresenting leap display 1802B (e.g., a landscape orientation). A usermay rotate computer 102 in the opposite direction to change frompresenting leap display 1802B to presenting leap display 1802A.Similarly, rotation of computer 102 may be used to alternate betweendisplays in other examples described herein.

In another example, leap display 1802B may display a user's jumpschronologically over a session and may indicate a time when each jumpoccurred as well as vertical height for each jump during the session.The leap display 1802B may also display a user's personal best verticalleap from a previous session or previously set during the session. In anexample, a personal best line can be changed during a session, eithervia a step function, or by adding a new line of the new best tosupplement the existing line (e.g., “new best” color) and showing linesfor the session in which the new best occurs. Computer 102 may alsoupdate leap display 1802B by replacing the previous personal best line(e.g., in one color) with a new line (e.g., in a new personal bestcolor, which may only be used during the session in which the personalbest occurred). Further, the color may change as the user's personalbest improves to indicate ability compared to other users (e.g., youjumped higher than 85% of other users).

The leap display 1802B may include a performance zone (e.g., dunk zone)indicating when a user may be able to perform an act (e.g., dunk abasketball). The computer 102 may tailor the performance zone to theuser based on the user's physical attributes (e.g., height, arm length,leg length, torso length, body length, etc.). For example, a dunk zonemay require a higher vertical leap for a shorter user than a talleruser.

A performance zone may correspond to a range of values, a minimum value,or a maximum value. The one or more values may correlate to when auser's athletic performance is expected that a user could perform aparticular act. For example, a performance zone may be a minimumvertical leap that would permit a user to dunk a basketball. The userneed not actually perform the act (e.g., dunking), but instead theperformance zone may indicate when the computer 102 calculates that theuser could perform the act.

Based on sensor data obtained from one or more sessions, computer 102may provide a recommendation to help the user achieve the performancezone. For example, computer 102 analysis of sensor data associated withleaps by the user may enable more feedback to the user to enhanceability to get into the dunk zone or to improve personal bests in rareair. For instance, computer 102 may process sensor data and recommendthat the user adjust certain body parts to increase the user's leapingability. In another example, computer 102 may suggest that the userobtain greater acceleration of leading foot or more pressure on trailingfoot by increasing upper body acceleration.

A performance zone may be established for any desired athletic movement.Example performance zones may correspond to a minimum amount of pressuremeasured by distributed sensor 306, a maximum amount of pressure,pressure falling within a particular range or pressures. Other exampleperformance zones may correspond to a minimum amount of accelerationmeasured by the sensor 306, a maximum amount of pressure, pressurefalling within a particular range or pressures. Also, a performance zonemay be based on a combination of different measurements or a sequence ofmeasurements. For example, a performance zone may specify at least acertain amount of acceleration, followed by at least a certain amount ofloft time, followed by at least a certain amount of measured pressure.

In gymnastics, for example, acceleration and body rotation may bemonitored. For instance, it may be desirable for a gymnast to have aspecific amount of body rotation during a dismount from the uneven bars.If the gymnast rotates too quickly or slowly, he or she may not orienttheir body in a proper position when landing. The performance zone maybe a “spin zone” specifying minimum and maximum rotationalaccelerations, and computer 102 may monitor for over and under rotationto provide the gymnast with feedback on whether they are within aperformance zone during a dismount. Computer 102 may provide arecommendation to adjust certain body parts to adjust an amount ofacceleration when dismounting to increase or decrease rotation by theuser. A performance zone may be established for other sports (e.g.,track and field, golf, etc.).

Computer 102 may tailor the performance zone based on feedback receivedform the user. In an example, computer 102 may receive input from a userindicating for which vertical leaps the user was able to perform the act(e.g., dunk a basketball), and the computer 102 may adjust a minimumrequired vertical leap for the user to be in the performance zone basedon the user's feedback. Computer 102 may award one or more activitypoints to a user for being in the performance zone as well as for theamount of time the user maintained their performance within theperformance zone. Computer 102 may also determine an amount of caloriesburned by the user while in the performance zone.

Computer 102 may present information indicating a rate of activitypoints earned by a user over the duration of an exercise session. FIG.18B illustrates an example activity points display 1804 in accordancewith example embodiments. Computer 102 may determine and award activitypoints to a user during the exercise session. To do so, computer 102 maycompare measured user performance to any number of metrics to awardactivity points. For example, computer 102 may award a predeterminednumber of activity point for running a predetermined distance. As may beseen in FIG. 18B, line 1806 of activity points display 1804 mayrepresent the rate at which a user earned activity points at varioustimes during the exercise session, line 1806 may represent an all-timeaverage rate at which a user has accrued activity points, line 1808 mayrepresent the average rate at which the user accrued activity pointsduring this particular session, and line 1812 may represent an all-timebest rate for accruing activity points. In an example, line 1806 mayrepresent how may activity points a user accrues per minute, or otherinterval of time (e.g., per millisecond, per second, per ten seconds,per thirty seconds, etc.). Activity points display 1804 may also presentindicia, such as lines, indicating other matrices, such as averages,including but not limited to an average rate of accrued activity pointsfor a predetermined number of previous session (e.g., last threesessions). Further, the lines may be of different colors. If a newall-time best is established, activity points display 1804 may flash orotherwise present an indication signifying the accomplishment.

Computer 102 may categorize activities performed by the user as well asa percentage of time during an exercise session a user was in aparticular category, and present this information to the user in theactivity points display 1804. For example, activity points display 1804may indicate a percentage of time during a session that a user was idle,percentage of time that the user moved laterally, percentage of timethat the user was walking, percentage of time that the user was running,percentage of time that the user was sprinting, and percentage of timethat the user was jumping, etc. Other categories instead of or inaddition to the ones shown in activity points display 1804 may also bepresented. Further, activity points display 1804 may display acumulative amount of time, rather than percentage of time, for each ofthese statistics. Computer 102 may determine that amount of activitypoints a user earned while in each category, as well as a total amountof activity points earned during an exercise session, and present suchinformation via activity points display 1804. In an example, computer102 may determine that a user earned 25 activity points while walking,75 activity points while walking, and 150 activity points whilesprinting, for a total of 250 activity points. Computer 102 may alsodetermine a caloric burn rate for each of the categories instead of orin addition to determining activity points.

The computer 102 may also display performance metric data based onmeasurements of a user's hustle and tempo. FIG. 19 illustrates examplehustle displays 1902A-B and tempo displays 1904A-B in accordance withexample embodiments. Hustle display 1902A may present a user's hustleover time during a session, as well as other performance metrics. Forexample, computer 102 may track various performance metrics including arunning total of jumps, sprints, fakes, and jump recovery (e.g., ashortest amount of time between consecutive jumps) during a session, andhustle may be a function of these metrics. With reference to hustledisplay 1902B, computer 102 may divide hustle into three categories:low, medium and high. More or fewer categories of hustle may be defined.Hustle display 1902B may also present line 1906 indicating an averagehustle level over a session.

With reference to tempo display 1904A, computer 102 may presentinformation on a user's tempo during a session. Tempo may be based on arate of steps taken by a user per interval of time (e.g., steps perminute). The categories may be defined by ranges of step rates. Forexample, walking may be defined as one to 30 steps per minute, joggingmay be 31-50 steps per minute, running may be defined as 51-70 steps perminute, and sprinting may be defined as 71 or more steps per minute.With reference to tempo display 1904B, computer 102 may indicate howoften a user was in each category during a session. For example, tempodisplay 1904B may indicate what percentage of the time a user was ineach category (e.g., 12% sprinting). Tempo display 1904 may alsoindicate a user's quickest number of steps per second (e.g., 4.1steps/second) or any other time interval, a total number of steps, atotal number of sprints, etc.

The computer 102 may also inform the user of activity points earnedduring the workout as well as total activity points accrued. FIG. 20illustrates an example activity points display of a GUI informing a userof points earned during a session in accordance with exampleembodiments. The computer 102 may process data taken during a workoutsession to award points to a user. The points may track a user'sactivity across different sports and workout sessions. The pointsdisplay 2002A-B may permit the user to determine points earned by daterange, workout session, or other ranges.

The computer 102 may also track user defined movement. FIG. 21illustrates example freestyle displays of a GUI providing information onfreestyle user movement in accordance with example embodiments. Infreestyle display 2102A, computer 102 may prompt the user to start amovement for tracking. The user may perform any desired type ofmovement, denoted hereafter as “freestyle” movement. In freestyledisplay 2102B, computer 102 may display a user's vertical leap, airtime,and foot used for a jump during the freestyle movement. Freestyledisplay 2102B may display performance metrics deemed relevant by thesystem 100, by the user, or both. For example, performance metrics couldbe the vertical leap, airtime, foot, as shown in display 2102B, could bethe weight distribution shown in display 2102C, or both with the usercycling through. In freestyle display 2102C, computer 102 may display aweight distribution measured by distributed sensor 306. The user mayalso review weight distributions over time to determine how the user'sweight distribution may have affected a user's availability to move orleap. A user may, for example, slide their finger across display to movebetween displays 2102A-C.

In addition to monitoring a user's performance during a session,computer 102 may assist a user in improving their athletic skills. FIG.22 illustrates example training displays 2202A-B presentinguser-selectable training sessions in accordance with exampleembodiments. The training sessions may guide the user through a set ofmovements designed to improve a user's athletic ability. Exampletraining sessions may include a shooting practice, an all around theworld game, a buzzer beater game, a pro-player game, a basic game, anair time game, a continuous crossover game, a free throw balance game, asignature moves game, a pro battles game, and a horse game. Thesetraining sessions are further described in FIGS. 23-26, which illustratetraining sessions 2300, 2400, 2500 and 2600, respectively. For example,computer 102 may have a touchscreen permitting a user to scroll betweenand select the training sessions shown in FIGS. 23-26.

In further embodiments, one or more non-transitory computer-readablemediums may comprise computer-executable instructions, that whenexecuted by a processor, permit the user to participate in a challengeand/or game with one or more local and/or remote users. In oneembodiment, a display device may be configured to present one or moreathletic movements to a user. The athletic movements may includeskateboarding movements that when combined form a “trick” (such as forexample a back-side rail slide, a front-side fakie, and/or one or morecombinations of “tricks” that may be performed by a user). In oneembodiment, the challenge and/or game may require the user to perform atleast one trick. Certain implementations may resemble a HORSE-like gamecommonly known to athletes (especially in the realm of basketball), inwhich execution of a successful shot into a basketball hoop (a.k.a.,basket) by a first user awards a symbol (e.g., letter of a word). Forexample, a trick, or portion thereof, may award the user an S in theword SKATE. In variations, the successful completion of a trick by afirst user may dictate what a second individual or group of individualsmust perform to be awarded the same symbol. Certain embodiments mayrequire at least a second user to perform the same trick or movement (orwithin a threshold level of performance for the movement or trick). Inone implementation, if a first skater completes a first combination ofmovements (e.g., movements that together form a trick, such as forexample, a front-side fake, performance characteristics of thosemovements or portions thereof may be detected or measured (qualitativelyand/or quantitatively). Example performance characteristics may include,but are not limited to, parameters related to speed, acceleration,location, rotational forces, height of the skateboard and/or the user orportion thereof). In certain embodiments, the determination that theuser completed a successful trick for a game—such as SKATE—may be basedupon one or more values of performance characteristics. In oneembodiment, at least two performance characteristics may each have tomeet a threshold value, yet in another embodiment, a total thresholdfrom a plurality of individual values may have to be obtained,regardless of the individual values. In another embodiment, a user maynot be permitted to do a movement or trick to earn points in a game,challenge, event or the like, unless the user has previously completedsub-components and/or less complex movements. For example, in oneembodiment, such as in a game of SKATE, a first individual cannotchallenge a second individual to obtain a letter in SKATE, by performinga combination of movements that the user has not previously performed toa level of competence, which may for example be determined by the samesensors (or at least a portion thereof) used in the current challenge orgame. In certain embodiments for example, to attempt a first trick, suchas a fakie 360 front side Ollie, the user may have to already completed(such as by measured by one or more sensors or processes discussedherein or known in the art) components, such as an Ollie and/or arolling fakie. Certain embodiments may require the completion to bewithin a set time-line, such as within the last month, or a thresholdquantity (e.g., at least 5 successful performances), or a combinationthereof. In one embodiment, the first user may select the performancecharacteristics that a second user must satisfy to meet the requirement.The first user may be required to indicate the performancecharacteristics before performance of the trick and/or identifying thetrick. For example, the first user may identify the trick as an fake 360front-side Ollie, and identify at least one of the performancecharacteristics as height or airtime. Thus, the second user tosuccessfully complete the trick may have to achieve a certain height orairtime (which may be at least what the first user achieved or within arange, which may be a default or settable. Further examples ofchallenges and execution of example challenges are discussed in moredetail throughout this disclosure, including immediately below. In oneembodiment, the game or challenge may be executed by a single user. Forexample, system and methods may prompt a user to perform a specifictrick or series of tricks, wherein each trick, portion of a trick,and/or series of tricks may be assigned to a symbol awarded to the user,such as a letter of a word. For example, the user may perform a firsttrick to get to get the letter S in the word SKATE. In accordance withone embodiment, the challenge may include a plurality of individualtricks, yet other embodiments, the challenge may include a plurality oftricks. In various embodiments, the challenge may include a plurality oftricks that each are to performed in a sequential manner. In yet furtherembodiments, the tricks may be formed during a predefined time periodwith respect to each other, such as the user must transition from afirst trick to a second trick. In certain implementations, specificletters or symbols awarded may be based on specific skills, such as butnot limited to those described below and elsewhere in this document.

In one embodiment, a challenge may relate to a specific trick and/orspecific skill set. For example, a first challenge may prompt the userto perform any “FAKIE” type trick. In one embodiment, the user may be apresented with at least one image of an athlete, which may be aprofessional or an amateur, performing at least a part of the challenge.In at least one embodiment, a plurality of sequential images, such as avideo may be provided. The image data may be viewed without acceptingthe challenge in certain embodiments.

In some embodiments, users may receive challenges based upon location.In one of these embodiments, a challenge may relate to a specific trickand/or specific trick set. For example, when arriving at a specificlocation or venue a user may be prompted to perform one or morechallenges. In one embodiment, the user may be prompted to perform achallenge that is specific or unique to the venue where the challenge isbeing performed. For example, when the user arrives at a first venue(e.g., skate park), a first challenge may prompt the user to perform aparticular “FAKIE” type trick. When the user arrives at a second venue,a second challenge may prompt the user to perform a particular “GRIND”type trick. Challenges and/or specific tricks may be associated withparticular venues based on a variety of factors including, but notlimited to, the venue's landscaping, altitude, positioning and number ofphysical objects (e.g., ledges, rails, steps), etc. Accordingly, when auser arrives at a particular venue or location, the user may be promptedto perform one or more challenges (and/or specific tricks) associatedwith that particular venue or location. In some embodiments, afterperforming one or more challenges at a first venue, the user may beprompted to perform additional challenges at a second venue. Furtherembodiments, may recommend a specific venue, location (or time at aspecific location) to perform at least one challenge or trick, such asdescribed herein. The trick may include a plurality of skate tricks thatrequire different physical objects. For example, a plurality of tricksmay require a ledge or rail or a horizontal surface located a specifiedheight (or range of height) from the ground surface.

In embodiments that utilize location data to determine the location of auser, GPS data may be used to determine when the user has arrived orleft a particular venue or location. For example, a mobile telephone orother device may periodically analyze GPS data to determine when a userhas left a skate park or other venue. When selecting challenges toperform, a GUI may be updated to inform the user of opportunities andlocations to participate in challenges. For example, a computing device,such as computer 102, may communicate location information (e.g., GPSdata) for the user to a server, which may respond by identifying nearbyvenues or locations where the user may perform various challenges ortricks.

In certain embodiments, the plurality of sequential images, which may bereferred to herein as a Trick Tip Video (TTV), may comprise a pluralityof images captured from multiple perspectives, such as a plurality ofsequential images taken from different angles. For example, in oneembodiment, a first perspective may include a first plurality of imagestaken during a first time frame at a first angle such as 25-30 degreesfrom a ground surface, such as a cement surface, from which the athleteis traversing, or from which the athlete has launched from. Thoseskilled in the art will appreciate that the ground surface may not beplanar, but rather may include a plurality of angles and/or extensionsthat project from the surface, such as rails, stair, pipes, amongothers. A second perspective may include a second plurality of imagestaken during a second time frame, which may or may not include a portionof the first time frame, from a second angle, such as 30-35 degrees fromthe same ground surface. In one embodiment, the first and secondperspective may be taken at different angles along the same horizontalor vertical axis. In one embodiment, the first and the second time frameentirely overlap and thus, may permit the user to view the same trick(or portions thereof) from a plurality of angles.

Data relating to physical activity (either raw or processed) may beobtained, directly or indirectly, and/or derived from one or moresensors, including those disclosed herein. In accordance with certainembodiments, physical activity data may be overlaid on an image (orsequence of images, e.g., video) of a user, such as a skateboardingathlete (which may be user 124 shown in FIG. 1, that was captured duringperformance of the physical activity.

In one embodiment, the user may adjust the video, either during playbackor via trick play commands, to adjust the perspective. In oneembodiment, the user may be permitted to provide one or more user inputsto adjust the perspective of the video such as to select one of aplurality of views or perspectives. For example, a user may wish to seea top-down view as to see the feet of the athlete, which may be askateboarder, during one or more portions of the video, and yet may wishduring the same or another portion of the video, to see a sideperspective view, such as to better view at least a portion of therotation of the athlete during performance of the trick.

In another embodiment, the user may adjust the video, either duringplayback or via trick play commands, to adjust the frame rate and/orplayback speed. In one embodiment, the user may be permitted to provideone or more user inputs to adjust the frame rate and/or playback speedof the video in a desired manner such as to provide “slow motion”effects when viewed on a display.

In one embodiment, the output of systems and methods described hereinincludes a single electronic file containing image data (which may be orinclude pixel data) representing a first series of sequential imagescaptured at a first rate and a second series of sequential imagescaptured at a second frame rate. The single file may be stored and/orconfigured to be played such that images captured at a second frame rateare displayed such that they appear to represent slow motion. It can beappreciated that one aspect of this disclosure is directed towards asingle UI that allows a user to capture a first group of sequentialimages. The UI may be configured to capture the image data such that atleast a portion of the first group of images includes a first series ofsequential images captured at a first rate and a second series ofsequential images captured at a second frame rate, wherein the capturingis user selectable. The user selection may occur as the images arecaptured, such by activating a UI input element to acquire images at asecond frame rate. In other embodiments, images may be captured at afirst rate that is faster than a second rate. Then after capture, theuser may provide a user input to adjust the frame rate of imagescaptured at the faster rate, such that they are flagged or evenpermanently changed to be displayed at a slower frame rate duringplayback. For example, images may be captured at a first frame rate of120 frames per second, and a user may provide a user input (or anautomated process may conduct actions to achieve the same results) toflag certain images as being 30 fps. For example, every 4^(th) image ofthe images captured at 120 fps may be utilized. Thus, during payback theflagged or altered images may be played such as to create an appearanceof normal speed, while the unaltered images (captured at 120 fps) at aconstant 30 fps rate, thus creating an appearance of slow motion.

In further embodiments, one or more non-transitory computer-readablemediums may comprise computer-executable instructions, that whenexecuted by a processor, permit the user to upload or otherwise data,such as videos, of their performance in a manner that allows at leastone third-party to access the image data. In one embodiment, a computingdevice associated with a user, such as computer 102, may transmit imagedata (e.g., videos) of their performance and/or corresponding athleticactivity data to a display device. For example, computer 102 maywirelessly communicate, via Bluetooth or some other near-fieldcommunication technology, image data of their performance andcorresponding athletic activity data to a display device. In anotherembodiment, image data (and/or physical activity data) may betransmitted in real-time.

One or more images (with the corresponding activity data) may bedisplayed on one or more display devices, such as a display at thelocation of the physical activity (e.g., skate park), a display in aretail sales location, or any other display medium, including but notlimited to being multi-casted to multiple display devices. The images(and correlated activity data) may be viewed via televisions, computingdevices, web interfaces, and a combination thereof. For example, if auser enters a retail location, a third party may access available imagedata associated with the user such that said image data is displayed onone or more devices in the retail location. In one example, image dataof the user performing one or more physical activities (e.g., a trick orchallenge) may be uploaded and displayed on a display device. Image datadisplayed on a display device may be uploaded from a computer associatedwith the user (e.g., computer 104), a server (e.g., server 134) or someother location, such as a data sharing site. One example of a data orfile sharing site may be YouTube® (www.youtube.com), Nike®(nikeplus.nike.com/plus), and/or Facebook (www.facebook.com). Thoseskilled in the art will appreciate that these sites are merely exemplaryand other locations configured to permit the collection and download ofelectronic information are relevant for this disclosure.

In certain embodiments, a user (e.g., user 124) and/or other individualsmay selectively determine which image and/or activity data is displayedon one or more display devices. The displaying of any data (and/or theselection of what physical activity data is displayed with the imagedata) may vary depending on one or more variables; including, forexample, the location of the user, the user's current activity score,the user's selection or input, a viewer's input, an indication that theuser's performance has met a threshold; e.g., reached a performancezone, and/or a combination thereof. Further embodiments may determine,based on one or more computer-executable instructions on non-transitorycomputer readable mediums, what image data and/or activity values may bedisplayed to viewer(s) for a specific time period and the duration ofdisplaying such data.

As still other examples, data transmitted by computer 102 may be used bya remote system to trigger audio or video displays that contain userspecific or other targeted information for comparing a user'sperformance metrics to other individuals in accordance with exampleembodiments. Such information may be displayed at a retail location, ata skate park venue, or other location. The data transmitted by computer102 may include athletic performance information associated with theuser or other users, which may be used to generate a leaderboard. Forexample, a display located at a skate park venue or retail location mayprovide a leaderboard for comparison of a user's performance metric tofriends, selected professional athletes, or all other users includingprofessional athletes. Example leaderboards may be for a top number ofactivity points (or activity score), total tricks performed, totalchallenges played, total awards won, or for other performance metrics.Other example leaderboards may be for a top number of comments or“likes” for videos associated with a user or tricks/challenges performedby the user. In this example, if a user receives several positivecomments (or “likes) for a video corresponding to a particular trick (orother athletic activity) performed by that user, the user may receive abetter position or ranking on the leaderboard.

In further embodiments, one or more non-transitory computer-readablemediums may comprise computer-executable instructions, that whenexecuted by a processor, permit the user to associate one or more otherusers with particular image data (e.g., videos). For example, a firstuser may capture image data, via computer 102, of a second userperforming an athletic activity (e.g., a trick). Either computer 102 orthe user may assign a tag to the captured image data. When the firstuser wishes to store (or save) the captured image data, a UI may promptthe user to generate a tag to associate the second user (o other users)with the captured image data. A user may be prompted in any manner toselect tags for the captured image data. One such manner in which a usermay be prompted to select tags may be that the UI displays to the user alist of other users that may be “tagged” in (e.g., associated with) thecaptured image data. In other embodiments, a user may manually selectone or more users to associate with captured image data. In certainembodiments, after a user has been “tagged” in (e.g., associated with)particular image data, the tagged user may subsequently claim“ownership” of said image data, such as that person may have joint orsole rights to edit, delete, copy, alter the image data, and/or controlaccess or editing rights of others, including the individual whocaptured the image data. A few example embodiments are discussedimmediately below.

In one embodiment, after a first user associates a second user with thecaptured image data, the first user may no longer be associated with thecaptured image data such that the first user has a limited number offunctions or options that may be performed via the UI in relation to thecaptured image data. For example, prior to tagging the second user inthe captured image data, the first user may have the option of editingand/or deleing the captured imaged data, associating one or more userswith the captured image data, uploading the image data to a server offile sharing site, and many other options. After the second user hasbeen tagged in (e.g., associated with) the captured image data, thefirst user may no longer perform one or more functions or optionspreviously available to the first user via the UI (e.g., tagging users,uploading image data, editing image data, etc.), however, the seconduser may now have access these features and options in relation to thecaptured image data. Tagging image data permits users to assign“ownership” of captured image data notwithstanding the particular device(or owner thereof) that was used to capture the image data. As a result,it is no longer necessary for a user to capture athletic activity withtheir own image capturing device, but instead, may now claim ownershipof image data captured by other individuals, as if the user had in factcaptured the image data themselves on their own image capturing device.

In certain embodiments, one or more non-transitory computer-readablemediums may comprise computer-executable instructions, that whenexecuted by a processor, permit the user to associate location data withcaptured image data. For example, a first user may capture image data,via computer 102, of a second user performing an athletic activity(e.g., a trick). Either computer 102 or the user may assign a locationtag to the captured image data. When the first user wishes to store (orsave) the captured image data, a UI may prompt the user to generate alocation tag to associate the captured image data with location datacorresponding to the location where the athletic activity was performed.A user may be prompted in any manner to select a location tag for thecaptured image data. One such manner in which a user may be prompted toselect a location tag may be that the UI displays to the user ageographic map and prompts the user to identify their current location.In other embodiments, location data (e.g., GPS data) may be used togenerate a suggested or recommended location tag. In certainembodiments, a user (e.g., user 124) may selectively determine whetherlocation data may be shared with or made available to other users orgroups of users. For example, a first user may adjust one or more UIpreferences or settings such that location data for any image data(e.g., videos) associated with the first user is made available only tofriends or other users or groups of users that have been identified bythe first user.

Other implementations may test a user's level of skill across differentskill sets and provide analysis of the user's performance. For example,a pie chart may readily demonstrate the user's proficiency at a manual,a front-side rail slide and/or others. Yet, others may demonstrate aproficiency at an environment, such as a playground, skate park, etc. ortransitions, such as from the ground surface to a rail or from the railback to a ground surface. Certain challenges may be based to build theuser's proficiency. Example trick trees are shown in U.S. Prov. App. No.61/874,248, filed Sep. 5, 2013 and U.S. Non-provisional application Ser.No. 14/292,411, filed May 30, 2014 the full disclosures of which areincorporated herein by reference in their entirety, for any and allnon-limited purposes. For example, U.S. patent application Ser. No.14/292,411 (“the '411 application”), shows an example “trick trees” fortricks relating to a user along a surface or flat ground with the userperforming a “frontside” regular type trick. As one example, in the '411application (e.g., FIG. 51), the “frontside” element of the trick treerefers to the direction of the rotation of the user during a trick. Asdepicted in FIG. 51 of the '411 application, there are various hubs inthe trick tree that identify the various components and sub-componentsof flatground regular tricks having a frontside rotation that may beperformed by a user. The first component of the trick tree depicted inFIG. 51 of the '411 application, is an ollie. The second component ofthe trick tree is a rotation hub. The rotation hub identifies tricksthat incorporate a degree of rotation (or spin). The rotation hub issubdivided into two subcomponents (e.g., tricks): a frontside 180 and afrontside 360. The third component of the trick tree is the kickflip hubwhich identifies the various types of kickflip-type tricks that may beperformed by a user. As depicted in FIG. 51, some of the subcomponents(e.g., tricks) for the kickflip hub also involve rotational components(e.g., frontside 180 kickflip and 360 hardflip). The fourth component ofthe trick tree is the heelflip hub which identifies the various types ofheelflip-type tricks that may be performed by a user. The last componentof the trick tree is the shove-it hub which identifies the various typesof shove-it-type tricks that may be performed by a user.

In some embodiments, the UI may display the trick tree as depicted inFIG. 51 of the '411 application so that a user may identify one or morevarious tricks to perform. In other embodiments, the UI may provide anindication on the trick showing the one or more tricks in the tree thatthe user has previously performed. As another example, FIG. 52 of the'411 application shows an example “trick tree” for tricks relating to auser along a surface or flat with the user performing a “back-side”regular type trick. As will be appreciated, the “backside” element ofthe trick tree depicted in FIG. 52 of the '411 application refers to thedirection of the rotation of the user during a trick. As depicted inFIG. 52 of the '411 application, there are various hubs in the tricktree that identify the various components and sub-components offlatground regular tricks having a backside rotation that may beperformed by a user. FIGS. 53-58 of the '411 application depict tricktrees for various other flatground tricks, including switches, fakies,and nollies. FIGS. 59-74 of the '411 application depict trick trees forvarious other tricks that may be performed on a particular surface suchas a ledge, rail, or pipe. FIGS. 75-91 of the '411 application depicttrick trees for various other tricks, such as stationary tricks, slidesand grinds, and tricks that may be performed while the user is in theair. Those skilled in the art will appreciate that skater may “grind”over a surface (e.g., a metal pipe), such as that at least one of thetrucks grind over the surface, yet the user may perform a “slide” trickin which the user slides over the surface in a manner that the board, oran extension thereof (other than the trucks) may contact the surface.For example, a first letter may require the user to perform a grindtrick, and a second trick may require the grind trick to be a front-sidegrind trick. Yet a further letter or symbol may require the user toperform one or more specific types of back-side grind tricks. Furtherembodiments, may require the user to perform a specific grind trickfollowed by a slide trick within a specific time frame or transitionalperiod.

One or more awards may relate to the user's performance. As discussedbelow, the user's performance may be rated by one or more third parties,including, members of a defined community, individuals, friends,colleagues, and/or combinations thereof. Awards may be provided based onstyle, the user's control, and/or impact. For example, control may bebased upon one or more sensor outputs, for example, variation of theuser's weight and/or force measured across one or more axes may bemeasured and compared with a predetermined and/or desired range. In yetanother embodiment, the user's impact may be measured. The sensors maymeasure force, such as but not limited to the sensors described herein.Certain embodiments may prompt placement and/or location of one or moreimage capturing devices and/or other sensors. For example, instructionsmay be provided as to capture a plurality of images from multipleperspectives. In yet other embodiments, image data may be obtained froma plurality of perspectives without requiring the user to capture theimages at specific locations or the like.

Certain embodiments may permit the user to upload or otherwise data,such as videos, of their performance in a manner that allows at leastone third-party to access the image data. In this regard, certainembodiments relate to correlating image data with data relating tophysical activity, such as including, but not limited to, any of the rawand/or processed data disclosed in any of the embodiments disclosedherein. Data relating to physical activity (either raw or processed) maybe obtained, directly or indirectly, and/or derived from one or moresensors, including those disclosed herein. In accordance with certainembodiments, physical activity data may be overlaid on an image (orsequence of images, e.g., video) of a user, such as a skateboardingathlete (which may be user 124 shown in FIG. 1, that was captured duringperformance of the physical activity. Examples are provided below,including but not limited to FIG. 42.

Further embodiments may allow one or more users to challenge other thirdparties, including but not limited to members of a community. In certainembodiments, users may challenge one or more members of a definedcommunity. In certain implementations, users may issue and/or receivechallenges based upon skill, experience, location, years within acommunity, age, and/or combinations thereof and/or other factors. Otherimplementations, may analyze motion within image data. Example imageanalysis may include but is not limited to one or more systems andmethods described within U.S. Application No. 61/793,472, filed Mar. 15,2013, which is incorporated by reference in its entirety for any and allnon-limiting purposes.

Performance of one or more tricks, which may be measured by image and/orother sensor data, either directly and/or indirectly, may be utilized toformulate and provide recommendations to the user, such as for footwear,apparel, equipment, such as a skateboard, truck, rails, and/or otherproducts. For example, a user's tendency to rotate to the left or rightside during performance of one or more tricks may be utilized torecommend a specific shoe, skate board, and/or combinations thereof. Asanother non-limiting example, based upon a user's consistency, skilllevel, performance, and/or other factors, which may be measured bysensors, such as force, impact, acceleration, and/or image data arecommendation regarding footwear may be formulated. For example,footwear may be selected based upon cushioning, flexible areas and/orsupport structure, Further embodiments, may consider a threshold levelof protection from impact forces detected during the user's performanceof one or more tricks.

Further embodiments, may recommend a specific location (or time at aspecific location) to perform at least one trick, such as describedherein, inclusive of but not limited to the discussion in relation toFIGS. 37 and 38. Although those figures are described in the context ofa basketball court, those skilled in the art will appreciate that anyenvironment is within the scope of this disclosure.

Further embodiments may unlock, for example, subject to the user'ssuccessful completion of one or more tricks (which may be based uponsensors and/or human analysis) the ability to create tangible goods. Forexample, successfully completing a trick tree may unlock the ability tocreate a personalized t-shirt that includes an image of the userperforming at least one of the tricks and/or data from the performanceof one of the tricks. As the user progresses and/or improves withrespect to a trick and/or skill, further features and/or abilities maybe unlocked or otherwise available.

FIGS. 27-30 illustrate display screens for GUIs for a basketballshooting training session in accordance with example embodiments. InFIG. 27, training display 2702 may present the user with information ontheir last session (e.g., shooting percentage for free throws, threepointers, and jump shots) and prompt the user to begin a new session.The computer 102 may monitor touches on a pressure sensitive displayscreen to track makes and misses. To do so, the computer 102 may monitorhow many fingers were used to distinguish between basketball shots. Forexample, three fingers may be used to indicate a three point shot inbasketball, two fingers may be used to indicate a two point shot, and asingle finger may be used to indicate a free throw, as seen inillustrative graphical user interface 2800 depicted in FIG. 28. A tap ofone or more fingers on the display screen may indicate a made shot, anda swipe of one or more fingers across a portion of the display screenmay indicate a miss. In other examples, a down swipe across a displayscreen of computer 102 with one or more fingers may indicate a make andan up swipe with one or more fingers may indicate a miss.

The computer 102 may process the user input to determine a number offingers used as well as between a tap and a swipe. The computer 102 maydetermine an amount of area of the display screen covered by the fingerswhen tapping and/or swiping the display screen to distinguish betweenone, two, or three fingers. The computer 102 may also determine durationof the touch and if a region of the display screen initially contactedby the user differs from a region of the display screen at the end ofthe touch to distinguish between a tap and a swipe. At the end of asession, the training display 2702 may display information on makes andmisses to the user, as seen in FIG. 29. The training display 2702 maydisplay makes/misses by shot type as well as totals for all shot types.For example, training display 2702A may display makes and misses forfree throws, and training display 2702B may display makes and misses forjump shots. Training display 2702B may aggregate 2 and 3 pointbasketball shots and may display makes and misses together, or separatedisplays may present makes and misses for each type of shot.

FIG. 30 illustrates example displays for a GUI providing the user withinformation on a shooting practice session in accordance with exampleembodiments. Shot summary display 3002A may permit the user to selectall shots or a particular shot type to receive information on percentageof shots made (e.g., 55.6%), a streak of how many shots were madeconsecutively, and the user's vertical leap “sweet spot” for the makes.The sweet spot may indicate a vertical leap where a user's shootingpercentage (e.g., percentage of made shots) exceeds a predeterminedamount (e.g., 50%). The computer 102 may process data from the podsensor 304 and/or from distributed sensor 306 to provide the userinformation about their makes and misses via the GUI. This informationmay include on average vertical leap for makes and misses to inform theuser about how jump height affects their shooting performance. Shotsummary display 3002B may inform the user which foot was used whenjumping as part of a shot along with a height of a vertical leap, andwhether a shot was made or missed. Shot summary display 3002C mayprovide the user with information about three point shots made andmissed.

The shot summary display 3002 may provide the user with statisticinformation as to how their balance affects their shots by indicatinghow many balanced shots were made and how many off-balanced shots weremade. The computer 102 may determine balance based on weightdistribution measured by distributed sensor 306 while a user took ashot. If weight is relatively evenly distributed between a user's twofeet (i.e., within a certain threshold), the computer 102 may identify ashot as being balanced. When weight is not relatively evenly distributedbetween a user's two feet (i.e., outside of a certain threshold), thecomputer 102 may identify a shot as being unbalanced. The shot summarydisplay 3002C may also provide a user with feedback about their balanceand tips to correct any issues with unbalanced weight distribution. Forexample, field 3004 may indicate how many shots were made when a user'sweight was balanced and field 3006 may indicate how many shots were madewhen a user's weight was off-balance.

In an example, computer 102 may receive and process data generated by aforce sensor to determine a weight distribution during a performance ofan exercise task (e.g., shooting a jump shot in basketball). Computer102 may process user input indicating successful completion of anexercise task (e.g., a make). Computer 102 may associate a detectedweight distribution at a time preceding the user input indicatingsuccessful completion of the exercise task. For example, computer 102may process sensor data to identify movement consistent with abasketball shot, and determine a weight distribution starting withdetecting lift-off when a user jumps during a jump shot, a period oftime prior to lift-off, landing, and a period of time after landing.Computer 102 may monitor weight distribution for these periods of time.At a subsequent time (e.g., second or subsequent jump shot), computer102 may process additional user input indicating unsuccessful completionof the exercise task (e.g., a miss). Computer 102 may associate adetected weight distribution at a time preceding the user input with theunsuccessful completion of the exercise task. After or during theexercise session, computer 102 may present to the user information abouttheir weight distribution and about how the distribution has affectedthe user's ability to complete the exercise task.

The GUI may also provide the user with incentives to working on theirbasketball shot. FIG. 31 illustrates an example display of a GUIinforming the user of shooting milestones in accordance with exampleembodiments. Milestone display 3102 may inform the user of one or moreshot thresholds and how many shots a user has made. For example,milestone display 3102 may indicate that a user has made 108 shots, suchthat the user has reached amateur status, and needs to make anadditional 392 shots to achieve the next status level.

As a part of drills for enhancing a user's skills, computer 102 mayprompt the user to perform moves similar to the ones used byprofessional athletes. FIG. 32 illustrates example signature movesdisplays for a GUI prompting a user to perform a drill to imitate aprofessional athlete's signature move in accordance with exampleembodiments. In addition to professional athlete signature moves, usersmay create and share signatures moves with other users.

In an example, a user may input a search query into signature movesdisplay 3202A to initiate a search for a desired professional athlete.The computer 102 may forward the search query to the server 134, whichmay reply with query results. The server 134 may also provide thecomputer 102 with suggested signature moves for display prior to a userinputting a search query. As seen in signature moves display 3202A,computer 102 may display different signature moves for user selection.Upon selection of a particular move, signature moves display 3202B maypresent video of the signature move and provide the professional'sperformance metrics for the move. The computer 102 may, for instance,query the server 134 for signature move data in response to the user'sselection to generate signature moves display 3202B. The signature movedata may include data from pod sensor 304 and distributed sensor 306 ofa professional athlete performing a signature move. The user may attemptto imitate the signature move and the computer 102 may process the userdata to indicate the accuracy of the imitation.

After completion of an attempt of the signature move, the computer 102may inform the user how well they successfully imitated the move. Toidentify a match, the computer 102 may compare data obtained from podsensor 304 and/or distributed sensor 306 with the signature move data todetermine if the two are similar. The computer 102 may monitor how longa user took to complete the signature move, a vertical leap of the user,airtime of the user, tempo of the user, or other information and comparethis data to corresponding data from the professional athlete. Thecomputer 102 may also indicate how accurately the user imitated thesignature move of the professional athlete, as shown in signature movesdisplay 3202C. Accuracy may be based on a combination of how similareach of the performance metrics is to the professional's. The computer102 may weight certain metrics more highly than others, or may weighteach metric equally. For example, the signature move data may provideinformation on three different metrics, and may compare the user's datato each of the three metrics. The computer 102 may determine a ratio ofthe user's performance metric to the professional's metric and mayidentify a match if the ratio is above a threshold (e.g., more than80%). Accuracy also may be determined in other manners.

In an example, computer 102 may receive signature move datacorresponding to acceleration and force measurement data measured by afirst user (e.g., a professional athlete) performing a sequence ofexercise tasks (e.g., cuts in basketball followed by a dunk). Computer102 may receive and process user data generated by at least one ofsensors 304 and 306 by monitoring a second user attempting to performthe same sequence of exercise tasks. Computer 102 may then generate asimilarity metric indicating how similar the user data is to thesignature move data.

Computer 102 may also provide the user with data on performance metricsfrom other users and/or professional athletes for comparison as part ofa social network. FIG. 33 illustrates example displays of a GUI forsearching for other users and/or professional athletes for comparison ofperformance metrics in accordance with example embodiments. Computer 102may communicate with the server 134 to identify professional athletes orfriends of the user, as seen in display 3302A. Each individual may beassociated with a unique identifier. For example, the user may select toadd a friend or a professional, as seen in the GUI display on the left.When a user elects to add a friend/professional, the user may input asearch query into the computer 102 for communication to the server 134,which may respond with people and/or professional athletes matching thesearch query, as seen in display 3302B. The user may establish a userprofile to identify their friends and/or favorite professional athletesso that the computer 102 may automatically load these individuals, asseen in display 3302C.

Computer 102 may present data for sharing with friends and/or posted toa social networking website. In FIG. 34, for example, display 3402Aprovides information for sharing, including points, top vertical, totalairtime, and top tempo. Display 3402B, for instance, provides a side byside comparison of performance metrics of a user and an identifiedfriend. In an example, the server 134 may store performance metric dataon each user and may communicate the data with computer 102 of the otheruser upon request.

FIG. 35 illustrates example displays for comparing a user's performancemetrics to other individuals in accordance with example embodiments. Forexample, display 3502A may provide a leader board for comparison of auser's performance metric to friends, selected professional athletes, orall other users including professional athletes. Example leader boardsmay be for a top vertical, a top tempo, a total airtime, total gamesplayed, total awards won, or for other performance metrics. Display3502B permits a user to view individuals whose performance metricsindicate they are in and are not in a performance zone (e.g., dunkzone). Computer 102 may also permit the user to compare theirperformance metrics to a particular group (e.g., friends) or to allusers.

The foregoing discussion was provided primarily in relation tobasketball, but the above examples may be applied to other team sportsas well as individual sports, including but not limited to skateboardingor any other boarding sports.

FIG. 36 illustrates a flow diagram of an example method for determiningwhether physical data obtained monitoring a user performing a physicalactivity is within a performance zone in accordance with exampleembodiments. The method of FIG. 36 may be implemented by a computer,such as, for example, the computer 102, server 134, a distributedcomputing system, a cloud computer, other apparatus, and combinationsthereof. The order of the steps shown in FIG. 36 may also be rearranged,additional steps may be included, some steps may be removed, and somesteps may be repeated one or more times. The method may begin at block3602.

In block 3602, the method may include processing input specifying a userattribute. In an example, computer 102 may prompt the user to input onone or more user attributes. Example user attributes may include height,weight, arm length, torso length, leg length, wing span, etc. In anexample, user may specify their body length. Body length may be ameasurement of how high a user can reach one of their hands whilekeeping the opposite foot on the floor.

In block 3604, the method may include adjusting a performance zone basedon the user attribute. In an example, computer 102 may adjust aperformance zone relating to how high a user must jump to dunk abasketball based on one or more of user height, arm length, torsolength, and leg length. For taller users, the performance zone mayspecify a lower minimum jump height to dunk a basketball as comparedwith a minimum jump height required for a smaller user to dunk or reacha basketball rim.

In block 3606, the method may include receiving data generated by asensor. In an example, computer 102 may receive data from at least oneof sensor 304 and 306 during an exercise session in which the userperforms one or more jumps. As discussed above, the data may be rawsignals or may be data processed by the sensors prior to sending tocomputer 102.

In block 3608, the method may include determining whether the data iswithin the performance zone. In an example, computer 102 may processdata received from at least one of sensor 206 and 304 to determine ifany jump performed by the user met or exceeded the minimum jump heightof the performance zone tailored to the user's attributes. For example,computer 102 may determine that a minimum vertical leap of 30 incheswould be required for a user to dunk a basketball, based on the userattributes. Computer 102 may process data received from at least one ofsensor 304 and 306 to determine whether any jump performed by the usermet or exceeded 30 inches. To determine a height of the vertical leap,computer 102 may process data generated by at least one of anaccelerometer and a force sensor, and comparing the data to jump data todetermine that the data is consistent with a jump (e.g., that a usersitting on a chair didn't merely lift their feet off of the ground for apredetermined amount of time). Computer 102 may, in response to thecomparing, process data generated by at least one of an accelerometerand a force sensor to determine a lift off time, a landing time, and aloft time. Computer 102 may calculate vertical leap based on the lofttime.

In block 3610, the method may include outputting the determination. Inan example, computer 102 may output the determination of whether theuser was within the performance zone. The output may be at least one ofaudible and visual. Computer 102 may provide the output immediately upondetecting the user is within the performance zone, or may output thedetermination at some later time (e.g., post workout). The method maythen end, or may return to any of the preceding steps.

When selecting to track performance, computer 102 may update the GUI,such as GUI 3700 shown in FIG. 37 or GUI 3800 shown in FIG. 38, toinform the user of opportunities and locations to participate in anevent (e.g., basketball game), as shown in GUI 3700 and/or GUI 3800shown in FIGS. 37-38, respectively. For example, the computer 102 maycommunicate a geographic location (e.g., GPS location) to the server134, which may respond with nearby events that are ongoing or arescheduled to start soon (e.g., within the next hour). FIG. 37illustrates two example GUI displays 3700 a, 3700 b for identifyingnearby basketball courts. On the left, the GUI 3700 a of the computer102 may provide a listing of nearby basketball courts and may provide amap to assist a user in locating a selected court. The GUI also permitsthe user to add a court along with an address of the court. On theright, the GUI 3700 b presents information about a selected court. Forexample, the GUI may display regular players (e.g., a court king whomost frequently plays at the court), and performance metrics of variousplayers at that court (e.g., player with a highest vertical leaprecorded at the court, player who takes the most amount of steps persecond, etc.). The GUI may prompt the user to check-in to the selectedcourt and may indicate the number of active players on the court. Whenchecking in, the computer 102 may communicate a check-in message to theserver 134 via the network 132, and the server 134 may update a databaseto indicate a number of times the user has checked in at that court. Theserver 134 may also communicate the check-in number via the network 132to computer devices of other users who request information about thatcourt. The GUI device may also assist a user to identify courts wherecertain other users are playing.

FIG. 38 illustrates an example GUI 3800 for obtaining activityinformation about other participants. The GUI may permit the user tosearch for friends or other individuals to determine their currentwhereabouts. The server 134 may store information about who is playingat each court (or other location) and may communicate that informationto users when requested. The user may also set up a user profileidentifying individuals of interest who the user may wish to competewith or against. Each user may be associated with a unique identifierthat may be stored by the user profile and/or by the server 134. Thecomputer 102 may communicate a query containing the unique identifiersof one or more users to the server 134, which may respond withinformation about the queried users. As seen in FIG. 38, the GUI maydisplay information about selected users who are now playing, as well asof a history of users who are not currently playing and/oraccomplishments of the users. When computer 102 requests informationabout a particular court, the server 134 may communicate data (e.g.,highest vertical leap, number of regular players, etc.) of users whohave played at the particular court to the computing device 101.

The GUI may be used to assist the user to find an ongoing session or asession starting in the near future, identifying other players, and/orreviewing a leader board. The GUI may permit a user to start a newsession (e.g., basketball game) and to invite other players at a certaintime (e.g., meet me at the high school field for a soccer game at 2 PM).The GUI may also display leader board information.

As seen in FIG. 38, a history field may inform the user ofaccomplishments of other individuals. For instance, the computer 102 maycommunicate alerts data to the server 134 about a user's achievementsfor distribution to other computing devices. A user may elect to receivealerts for certain other users, such as by sending a message fromcomputer 102 to the server 134 with the unique identifiers of thecertain other users. Prior to a user beginning a session, the user mayindicate which performance metrics the users wishes the computer 102 tomonitor during the session.

FIG. 39 shows a process that may be used to find locations of sportingactivities, in accordance with an embodiment of the invention. First, instep 3902 a server or other computer device receives locationinformation that identifies a location of a user. The locationinformation may be in the form of GPS data and may be received from aportable device, such as a mobile telephone. Next, in step 3904 a serveror other computer device receives activity information identifying asporting activity. The activity information may be a desired sportingactivity, such as basketball, football or soccer. A user may enter theinformation at a mobile telephone and the telephone may transmit theinformation to a server. Next, in step 3906 a server or other computerdevice may process the location information and the activity informationto identify locations in proximity to the user to participate in thesporting activity. Step 3906 may include identifying basketball courts,soccer fields, etc. that are currently being used for the sportingactivity or will be used in the future. Step 3906 may include accessinga database of sporting activities and a geographic database. The resultsmay be transmitted to a user in step 3908.

FIG. 40 illustrates a process of sharing performance data, in accordancewith an embodiment of the invention. First, in step 4002 locationinformation for a user participating in a sporting activity isdetermined at a mobile terminal. Step 4002 may include using a GPSfunction of a mobile telephone to determine a location of a userparticipating in a basketball or soccer game. Next, in step 4004 thelocation information is processed at a processor to determine anidentification of the location of the sporting activity. Step 4004 mayinclude processing GPS data to determine a name of a basketball court ora soccer field. Sensor data relating to performance of the userparticipating in the sporting activity may be received at the mobileterminal in step 4006. The sensor data may be from one or more of thesensors described above. The sensor data may be processed at a processorto generate performance data in step 4008. The processing may beperformed at the mobile terminal. In some embodiments all or some of theprocessing may be performed by one or more of the sensors. Theperformance data may include speed, distance, vertical jump height andfoot speed. In step 4010 the identification of the location of thesporting activity and the performance data may be transmitted to aserver. The server may maintain a collection performance for varioususers and locations.

FIG. 41 illustrates a process that may be used to track and compareperformance data in accordance with an embodiment of the invention. Instep 4102 performance information is received at a server from sensorsworn by users participating in sporting activities. Step 4102 mayinclude receiving information from a sensor at a server with one or morecomputers, mobile terminals, or other devices in the path between thesensor and the server. The sensors may include one or more of thesensors described above. Location information for geographic locationsof the sporting activities may also be received at the server in step4104. The location information may be GPS information, a name of a venueor other information used to identify a location. In step 4106, adatabase of performance data of the users and performance dataassociated with geographic locations is maintained. Step 4106 mayinclude maintaining multiple databases or collections of data. Finally,in step 4108 leader boards of performance data are maintained. Step 4108may include maintaining leaderboards that identify user maximum verticaljump heights or other performance data. Step 4108 may also includemaintaining leader boards that identify maximum vertical jump heights orother performance data obtained at identified geographic locations, suchas basketball courts or soccer fields.

In embodiments that utilize location data to maintain leaderboards orstatistics for users at specific locations, GPS data may be used todetermine when the user has left the location. For example, a mobiletelephone or other device may periodically analyze GPS data to determinewhen a user has left a basketball court. Similarly, sensor data may beanalyzed to determine when the user has stopped participating in anactivity. In other embodiments, a user may be determined to have left acourt or venue or stopped participating in an athletic activity whenparticipating in a phone call. Some implementations may includeprompting the user to confirm that he or she left or stop participatingin the athletic activity while participating in a phone call. Someembodiments may also ignore sensor data when participating in phonecalls.

Various embodiments of the invention described above discussing usingGPS data to identify locations. Alternative embodiments may determinelocations by using other technologies, such as WiFi database mappingservices. Users may also manually enter location data or searchdatabases of location data. Further aspects relate to correlating imagedata with data relating to physical activity, such as including, but notlimited to, any of the raw and/or processed data disclosed in any of theabove embodiments. Data relating to physical activity (either raw orprocessed) may be obtained, directly or indirectly, and/or derived fromone or more sensors, including those disclosed herein. In accordancewith certain embodiments, physical activity data may be overlaid on animage (or sequence of images, e.g., video) of a user, such as user 124,that was captured during performance of the physical activity.

FIG. 42 is a flowchart of an example method that may be utilized inaccordance with various embodiments. At exemplary block 3702, image datamay be obtained. Image data may be captured from one or moreimage-capturing devices, such as a camera located on a mobile terminaldevice (see, element 138 of FIG. 1A), a video camera, a still-imagecamera, and/or any apparatus configurable to detect wavelengths ofenergy, including light, magnetic fields, and/or thermal energy. As usedherein, “image data” may encompass raw and/or compressed data, either ina physical tangible form or stored on a computer-readable medium aselectronic information. Further, a plurality of images may form part ofa video. Thus, references to images and/or pictures encompass videos andthe like.

In one embodiment, image data, such as information obtained during theuser's performance of physical activity (e.g., participating in abasketball game and/or performing a specific action, such as dunking aball in a basket), may be captured from one or more devices. Forexample, a computer-readable medium may comprise computer-executableinstructions that, when executed, may perform obtaining a plurality ofimages (e.g. a video) of the athlete playing a sport. For example,mobile terminal 138 may comprise an application that permits user 124(or another user) to use an image capturing device (either part of themobile terminal 138 or provide an input to an external image-capturingdevice, such as camera 126) to capture the image data.

In one embodiment, upon the user activating a record function (which maybe a hard or soft button) on a host device (e.g., the mobile terminal138), the simultaneous capturing of the video and physical activitysensor data may be initiated. In certain embodiments, multiple camerasmay be utilized simultaneously. Multiple cameras may be used, forexample, based upon the user's location, (e.g., through detection of theuser by way of GPS, triangulation, or motion sensors). Image data may beobtained in response to a user operating a camera on a device, such as acamera of mobile terminal 138. In one embodiment, user 124 may providemobile terminal 138 to another individual who can capture video of theuser 124 playing a sport or performing a fitness activity. However, infurther embodiments, one or more cameras may be in a fixed position,angle, focus, and/or combinations thereof. In certain embodiments, imagedata may be obtained from a broadcast source not directly controllableby user 124 (and/or individuals or entities under user's 124 direction),such as for example a content source provider. For example, a contentsource provider may broadcast (either live and/or delayed) a sportingevent. In one embodiment, the event may comprise a scheduled basketballgame. However in another embodiment, sporting event may comprise anunscheduled event, such as a pickup game. In certain embodiments,multiple camera feeds may be utilized to determine which feed(s) orsources of images to use.

In one embodiment, image data may only be captured based on sensor data.In one embodiment, sensor data may be physical activity data. Forexample, in certain implementations, image data may only be capturedupon determining that user is within a “performance zone.” In anotherembodiment, at least one physical attribute value must meet a threshold.Other embodiments may indiscriminately capture image data of user 124,and optional block 3704 or another process may be performed to select aportion of the captured image data. For example, block 3702 may captureover 20 minutes of image data of user 124, however, block 3704 may onlyselect those portions in which the user 124 was in a performance zone.Those skilled in the art will readily appreciate that other selectioncriteria are within the scope of this disclosure.

The image data obtained in block 3702 (and/or selected at block 3704)may be stored on one or more non-transitory computer-readable mediums,such as on server 134, network 132, mobile terminal 138, and/or computer102. The type and/or form of the image data may depend on a myriad offactors, including but not limited to: physical activity data (forexample, as obtained from a sensor), user selection, calibrationparameters, and combinations thereof. Image data may be time stamped.Time stamping of image data may be performed as part of the image data'scollection and/or storage. The time stamp information may comprise a“relative” time stamp that does not depend on the actual time ofcapture, but rather is tied to another event, such as a data point ofactivity data, start time, and/or any other events. In anotherembodiment, an “actual” time stamp may be utilized in which the time ofcapture may or may not be related to another event. Those skilled in theart will appreciate that both types of stamps may be utilized, includingthe utilization of a single actual time stamp that is also correlated toanother event.

At block 3706, physical activity data may be received. As discussedabove in relation to image data, activity data may also be time stamped.In one embodiment, sensor data may be received, which may comprise rawand/or processed information relating to the user's 124 activity.Activity data may be obtained from one or more sensors described herein.For example, in one embodiment, the user's footwear may comprise atleast one sensor. In certain embodiments, at least a portion of theathletic data may remain on the sensory device or another deviceoperatively connected to the user (e.g., wrist-worn device and/orshoe-mounted sensors) until the capturing time period is over. The datamay then be joined as a single file using time stamps. Certainimplementations may store a single file, but transmit a first portion ofthe data (such as the image data) separate from a second portion (suchas the activity data). In another embodiment, a first portion of data(such as the image data) may be stored separate from a second portion(such as the activity data), yet may be transmitted to a first tangiblecomputer-readable medium as a single file.

Multiple sensors (from one or more devices) may be utilized. In oneembodiment, raw accelerometer and/or gyroscope data may be obtained andprocessed. In another embodiment, force sensor data may be received. Inyet another embodiment, physical activity parameters may be calculatedbased upon one or more raw parameters from a plurality of sensors. Asone example, FIG. 9 shows a plurality of data parameters that may beobtained in accordance with certain implementations. In certainembodiments, user 124, the sensor data and/or sensors utilized to obtainthe data (and/or the calculations for providing any processed data) maybe selectable. For example, user 124 (or another input received fromanother source, either manually or automatically) may select a sensor140 associated with shoes and/or other apparel. In this regard, inputsmay not limited to user 124, for example, a coach, trainer, parent,friend, broadcast personnel, and/or any other individual may select oneor more sources for activity data. Further embodiments may calibrate oneor more sensors before utilization of corresponding data. In yet otherembodiments, if calibration parameters are not obtained, data from onemore sensors may be excluded from use. FIG. 10 shows an exemplaryembodiment of calibration; however this disclosure is not limited tothis embodiment. As discussed above in relation to image data, at leasta portion of the physical activity data may be selected for processingand/or utilization.

At block 3708, image data and physical activity data may be correlated.The correlation may be based on the time stamps of the data, such thatphysical activity data is matched to the image data corresponding to thetiming of capture. In yet other embodiments, data may be filtered,processed or otherwise adjusted to be matched with each other. Forexample, each image of a first video, of user 124 performing athleticactivity, may represent 1/20th of a second of the first video, however,data from a first sensor may provide activity data values every ⅕th of asecond, therefore, in one embodiment; four consecutive “frames” of imagedata during the 1/20th of a second may be associated with the sensordata captured during that ⅕ second increment. In yet other embodiments,a plurality of physical activity values may be weighted, averaged, orotherwise adjusted to be associated with a single “frame” or collectiveimage. Correlation of the data may be implemented on one or morecomputer-readable mediums.

Correlation of at least a portion of the data may be implemented on areal-time basis, and/or later in time. Correlation may not occur until aselection of a portion of data is selected. In certain embodiments, thedata may not be correlated until a specific user is selected. Forexample, image and/or physical activity data may be correlated upon thedetermination of a winner of a game, or upon the occurrence of an event(e.g., a user dunking a basketball). Further the type and amount of datato be correlated may also be selectable. For example, upon determining auser dunked a basketball, correlation may be performed on image and/oractivity data that occurred 10 seconds prior to the dunk and continuesto 3 seconds after the dunk. In one embodiment, upon determining that aplayer won a game or event, a larger portion of their data would becorrelated. For example, data covering an entire time frame of a game orevent may be utilized. Further, the data correlated may depend on theevent, data collected, or other variables. For example, for a basketballdunk, activity data collected or derived from one or more force sensorswithin user's shoes may be utilized, yet in a soccer match, arm swingdata may be utilized, alone or in combination with other data, todetermine steps per second, speed, distance, or other parameters.Correlation data may include, but is not limited to: identification ofthe sensing unit, specific sensor, user, time stamp(s), calibrationparameters, confidence values, and combinations thereof.

In further embodiments, system 100 may receive and/or process datagenerated by a sensor, such as a force sensor, to determine a weightdistribution during a performance of an exercise task (e.g., shooting ajump shot in basketball). System 100 may associate a detected weightdistribution, at a time preceding the user input, to determine aninitiation point and/or cessation point for correlation of specificdata. At a subsequent time, system 100 may also process additional userinput indicating unsuccessful completion of the exercise task.

System 100 may process sensor data, such as for example, data receivedfrom the pod sensor 304 and/or the FSR sensor 206 over a session todetermine which data may be classified and/or correlated. For example, auser's hustle during a session may be categorized into two or morecategories. With reference to hustle display 1902B, system 100 maydivide hustle into four categories: walking, jogging, running, andsprinting. With reference to hustle display 1902C, system 100 may dividehustle into three categories: low, medium and high. More or fewercategories of hustle may be defined. System 100 may process the data toidentify a category based on a rate of steps taken by a user perinterval of time (e.g., steps per minute). The correlated physicalactivity data may comprise information indicative of when and/or howoften a user was in each category during a session. In certainembodiments, only physical activity indicative of being within one ormore specific categories may be correlated with the corresponding imagedata.

In certain embodiments, data may be transmitted and displayed on one ormore devices. In certain embodiments, the display device may bephysically distinct from the device which is capturing the image(s)(see, e.g., block 3710). For example, in one embodiment, an individualmay utilize a portable device, such as a mobile terminal, to capture avideo of user 124 performing physical activity, such as participating ina basketball game. Information regarding the captured images may betransmitted (either before or after being correlated with data relatingto the physical activity of user 124) via wired and/or wireless mediums.

FIG. 13, which was discussed above, shows an illustrative example GUIproviding performance metrics during an event, game, or session inaccordance with example embodiments. One or more of these metrics mayrelay information about a length of a current or previous session infield 1304, various performance metrics (e.g., top vertical, totalairtime, tempo, etc.) for the user in field 1308, as well as who theuser played with during the session in field 1310. One or more of thesemetrics may be overlaid with the corresponding imaging data inaccordance with certain embodiments. The image data may be joined toform a video, which may be stored as a single file such that the dataoverlay is part of the video and is displayed with the correspondingvideo portion to which that data was captured. In further embodiments, asecond file may store the data separate from video data.

In one embodiment, image data (and/or the physical activity) data may betransmitted in real-time. One or more images (with the correspondingactivity data) may be displayed on one or more display devices, such asa display at the location of the basketball game, or any other displaymedium, including but not limited to being multi-casted to multipledisplay devices. The images (and correlated data) may be viewed viatelevisions, computing devices, web interfaces, and a combinationthereof. In certain embodiments, user 124 and/or other individuals mayselectively determine which activity data is displayed on one or moredisplay devices. For example, a first viewer may selectively view theuser's current speed and/or average speed, and a second viewer mayselectively view the one or more different activity values, such as forexample, highest vertical jump, number of sprints, average speed, and acombination thereof. In this regard, the data may be formed from, and/orbe updated from a long duration, such as total play time during a game,portion of game (quarter, half, etc.). Thus, there is no requirementthat the image data only be correlated to data obtained during capturingof the image data, but instead may further include (or be derived from)previously-obtained data. Further embodiments may present the imageand/or physical activity data for sharing with friends and/or posting toa social networking website. The transmission of any data may be basedon, at least in part, at least one criterion, such as for example,user-defined criteria that at least a portion of the data meets athreshold. For example, users may only want to upload their bestperformance(s).

Thus, certain embodiments may utilize historical data. As one example,leap data (such as that shown in leap display 1802B) may display auser's jumps chronologically over a session and may indicate a time wheneach jump occurred as well as vertical height for each jump during thesession. The leap display 1802B may also display the user's current dataand/or that user's personal best vertical leap during the event.

Further, as discussed above in relation to the correlation of data, thedisplaying of any data (and/or the selection of what physical activitydata is displayed with the image data) may vary depending on one or morevariables; including, for example, the type of game, event, user's 124selection or input, a viewer's input, an indication that user's 124performance has met a threshold; e.g., reached a performance zone,and/or a combination thereof. Further embodiments may determine, basedon one or more computer-executable instructions on non-transitorycomputer readable mediums, which activity value(s) may be displayed toviewer(s) for a specific time period and the duration of displayingcertain values.

In certain implementations, image data may not be correlated with atleast a portion of activity data until a later time. Transmission and/orcorrelation of image data with activity data may be conducted on aroutine basis, such as every 1 second, 10 seconds, 30 seconds, 1 minute,or any increment of time. In this regard, a system and/or user maydetermine to evaluate one or more metrics at a later time. These metricsmay be based on, for example, a type of athletic activity performed in asession (e.g., basketball game, football game, running session, etc.).Certain embodiments may permit the evaluation and/or analysis ofdifferent metrics than initially viewed and/or desired upon capturingthe image(s). For example, user 124 and/or a coach may be initiallyinterested in evaluating a user's quantity of vertical jumps that meet afirst threshold (e.g., about 4 inches), yet at a later time, the coachor user 124 may want to evaluate the image(s) with an overlay of aquantity of steps per unit time (e.g., number of steps per minute). Incertain embodiments, computer 102 may prompt the user to indicate whichmetrics to monitor for each type of session (e.g., baseball, soccer,basketball, etc.) and store the identified metrics in a user profile. Inyet another embodiment, the type of session may be derived fromcollected data, inclusive, but not limited to, activity data or theimage data.

Computer 102 may also prompt the user for desired metrics at thebeginning of each session for what data to collect—inclusive of datathat may not be overlaid over the image. Further embodiments may adjustthe image data collected and/or utilized. For example, variations mayinclude the resolution, frame rate, storage format protocol, andcombinations thereof. At the beginning of a session, sensors, such assensors within a shoe (see device sensor 140) and/or other sensors, maybe calibrated. Yet in other embodiments, sensors may be calibratedduring, or after, a session or event. In certain embodiments, previouslycollected data may be utilized in determinations of whether to calibrateand/or parameters of calibration.

Block 3710 and/or other aspects of certain embodiments may relate togenerating and/or displaying a summary segment with the image data. Forexample, the image data may be utilized to form a 25 second video. Incertain embodiments, the video file may be formed to include a segment(e.g., 5 seconds), such as located at the end of the 25-seconds of imagedata, that provides a summary of certain statistics. In thoseembodiments, in which the video is a single file, this segment may alsoform part of the same single file. In certain embodiments, this summaryscreen (or another summary) may be presented to the user while the videofile is being created (e.g., during the time in which the image data isbeing properly aligned with the sensor data). Further information may bedisplayed with the image data. For example, in one embodiment, anoverlay may display the origination of the data; such as by a wrist-wornor shoe-mounted sensor, and/or specific manufactures or models ofsensors.

Further aspects relate to creating and/or displaying a “representativeimage” that is formed from an image within the collection of images(see, e.g., block 3712). The representative image may be utilized as a“thumbnail” image or a cover image. In further embodiments, therepresentative image may be used to represent a specific video among aplurality of videos, in which each may have their own representativeimage. In one embodiment, the representative image may be selected basedupon it being correlated in time with a data value that represents thehighest value of at least one athletic parameter. For example, thehighest value of a jump (e.g., vertical height) may be utilized toselect an image. Yet in other embodiments, the highest value relating tovelocity, acceleration, and/or other parameters may be utilized inselecting an image. Those skilled in the art will appreciate that the“best” data value may not be the highest, thus this disclosure is notlimited to image data associated with the “highest” value, but rather isinclusive of any data.

In further embodiments, a user (or any individual) may select whichparameter(s) are desired. In yet other embodiments, computer-executableinstructions on a tangible computer-readable medium may select aparameter based upon the data collected. In yet further embodiments, aplurality of images may be selected based upon the correlated physicalactivity data, and allow the user to select one. Any physical activitydata and/or image data may be associated with location data, such as GPSor a specific court.

Further embodiments relate to creating a collection of image data from aplurality of users, based upon sensed data (see, e.g., block 3714). Inone embodiment, a “highlight reel” may be formed which comprises imagedata of a plurality of users. In one example, a highlight reel may becreated from data obtained from a sporting event. For example, aplurality of players on one or more teams may be recorded, such asduring a televised sporting event. Based upon sensed athletic data,images (e.g., video) obtained during performance of that data may beaggregated to create a highlight reel for the sporting event or aportion thereof (e.g., the first quarter and/or the final two minutes).For example, sensors may obtain athletic data from the players duringthe sporting event, and based upon at least one criterion (i.e., jumpshigher than 24 inches and/or paces greater than 3 steps per second),correlated image data may be utilized in forming the highlight reel.

Certain embodiments relate to generating a feed or a plurality of imagecollections based upon at least one criterion. For example, viewers ofsporting events often do not have the time to watch every game orcompetition, such as during playoffs of sporting events. Thus, in oneembodiment, a feed may be selectively limited to physical activity offriends, teams or athletes followed, basketball games in which certainteam(s) played and a specific player(s) that achieves a specificparameter value(s). Thus, in some embodiments of the invention, imagedata may comprise image data captured during a first time period andimage data captured during a second time period that is different thanthe first time period. These feeds may also be categorized based uponactivity type and/or sensors utilized to capture the activity. Incertain embodiments, the highlight reels and/or feeds may be based, atleast in part, on whether the player(s) are within a performance zone.

In one embodiment, the image data captured during the first time periodis at a first geographic location and image data captured during thesecond time period is at a second geographic location. In certainimplementations, images from two or more locations that are obtainedduring two different time periods, may be combined into a single image.In one embodiment, a user's physical performance may be captured with amobile phone or other device and merged with image data corresponding toa historical athletic performance or known venue. For example, a videoof a user shooting a basketball shot may be merged with a video of afamous athlete shooting a last minute three-point shot. In someembodiments, a user may capture an image of a scene prior to recording avideo of a user performing an athletic move at the same location. Amobile phone, or other device, may then remove the scene data from thevideo to isolate the user. The isolated video of the user may then bemerged with, or overlay, an image or video of another location or event.Similarly, selected portions of captured image data may be replaced. Forexample, a video of a user slam dunking a tennis ball may be edited toreplace the tennis ball with a basketball. Various other features anddevices may be used in accordance with the aspects described herein.Additional or alternative features may also be incorporated into thedevice and/or applications associated therewith.

Further aspects of this disclosure relate to uploading electronicinformation, such as for example, a media file, from an end-usercommunication device to a data sharing site (such as for example, avideo sharing site). One example of a file sharing site may be YouTube®(www.youtube.com), Nike® (nikeplus.nike.com/plus), and/or Facebook(www.facebook.com). Those skilled in the art will appreciate that thesesites are merely exemplary and other locations configured to permit thecollection of electronic information are relevant for this disclosure.An end-user communication device may be any electronic device, includingany devices disclosed in relation to FIGS. 1-5. In one embodiment, itmay be a mobile terminal, such as a mobile telephone. In otherembodiments, it may be any electronic device having at least one mode ofcommunicating with another electronic device.

Files may be uploaded via a novel token-verifiable file proxy uploadersystem. In accordance with one embodiment, an end-user communicationdevice may be utilized to upload files to a sharing location withouthaving credentials to the sharing location. For example, a user mayutilize software and/or hardware components on the communication device(such as an app on a mobile device) to upload videos to a video sharingsite and/or any remote location without the app (or othersoftware/hardware utilized on the user's communication device) utilizingcredentials to the remote location to which the file will be posted orotherwise shared (a.k.a “sharing location”). In certain embodiments, ahosted server proxy may be utilized to upload the video usingcredentials not known to the user or the user's communication device.For example, any non-transitory computer-readable mediums on the user'scommunication device are devoid of computer-executable instructions,when executed, provide contain or otherwise utilize credentials that arerequired to perform any one or more of the following actions withrespect to files located on the communication device and desired to betransmitted to the sharing location: transmit to, share with at leastone additional user that is not the user of the user communicationdevice submitting the file, post (publically and/or privately), submit.Further, the user of the communication device is without knowledge ofcredentials for performing at least one of the above-referenced actions,and therefore, processes are devoid of any methods in which the userdirectly provides, such as via an electronic submission using thecommunication device, sharing location credentials to the sharinglocation. Thus, in one implementation, a proxy system may utilize atoken system to allow authenticated users to upload videos to the proxy.

The proxy may then store the files, which may comprise for example,image data. The files may comprise videos. The proxy may initiate videoanalysis of at least a portion of the videos. The analysis may extractmetadata via automated analysis. At least a portion of the files, suchas a portion of one or more videos, may then be uploaded to a filesharing location, which may include metadata included in the upload. Thetoken may be configured to provide a first privilege for the file withrespect to the file sharing location, and the hosted services server isconfigured to provide a second token configured to provide a secondprivilege for the file with respect to the file sharing location.

FIGS. 43A and 43B graphically illustrates example embodiments of usingproxy systems in accordance with various embodiments. Specifically,FIGS. 43A and 43B provide two similar, but distinct implementations ofusing proxy systems in accordance with implementations 4300 and 4302,respectively. Therefore, consistent reference numerals will be usedwhere possible to explain the commonalities between the two embodimentsof FIGS. 43A and 43B. In this regard, both implementations 4300 and 4302are each explained in the context of the following exemplary devices:end-user communication device 4304, hosted services server 4306, hostedproxy server 4308 and file share location 4310. As one example, a hostedservices server may include one or more hardware or software modulesconfigured to provide or host services utilized by the end-user device.For example, hosted services server 4306 may be configured to provideaudio, visual, textual and/or other data. A hosted services server maybe configured to provide subscribers and/or users information, such asthat is utilized to run apps on a mobile device. As one example,end-user device 4304 may have an app sponsored or distributed by CompanyA which the user has a direct relationship with. For example, the userof the end-user device may have an account and/or an account login withcredentials to receive services from Company A.

As such, hosted services server 4306 may include hardware and/orsoftware modules that enable a user to receive those services. As partof those services, the user may have credentials to receive servicesdirectly from hosted services sever 4306. Those skilled in the art willappreciate that the implementations 4300 and 4302 are simplisticrepresentations for ease of reading and more complex systems and/orcomponents may be utilized and/or modified to achieve the novel aspectsof the implementations disclosed herein. Further, certain examples willbe described in relation to a video file or a media file, however, thoseskilled in the art will appreciate that other files are within the scopeof this disclosure.

In certain embodiments, a user, such as a user of end-usercommunications device 4306 may desire to provide information, such aslocated within an electronic file, to a third party as part of usingservices offered by Company A. Despite using Company A's hosted servicesserver, the user may not desire to host that information on Company A'sservers and/or Company A may desire not to receive certain informationfrom the user, such as due to privacy issues, space restraints, and/orother considerations. Therefore, certain disclosed systems may permitend-user communication device 4304 to obtain a token from hostedservices server 4306 that allows the user of the end-user communicationdevice 4304 to store and/or share information on a file share location4310 without having at least one required credential perform theapplicable sharing or storing and also while the information not beingstored on the hosted services server 4306.

In accordance with certain embodiments, a proxy system is configured toutilize a token to allow authenticated users of a hosted service (whichmay be hosting services from hosted services server 4308) to uploadfiles, such as videos, from their device(s), such as the user'scommunication device, to a proxy server, such as sever 4308. The proxyserver may be configured to store the files locally and/or conduct videoanalysis on the files. For example, for video files, metadata caneextracted and associated with the videos. The analysis may beautomatically conducted. The files may then be uploaded to a file sharelocation (such as file share location 4310), along with one or moreadditional associated pieces of information, such as metadata. Infurther embodiments, a queue may be used to retain and/or throttle theupload frequency or timing of one or more files to the file sharingsite. In one embodiment, the proxy server 4308 may manage the queue. Inother embodiments, an end-user device, such as end-user communicationdevice 4304, may be configured to trigger a re-upload attempt. Incertain embodiments, one or more of the devices may have a thresholdthat limits the transfer, copy, or sharing the file on the file sharinglocation 4310, therefore, the proxy server 4308 and/or end-usercommunication device 4404 may decrease the transfer speed or frequencythrough one or more mechanisms.

As shown in FIGS. 43A and 43B, one exemplary implementation may comprisereceiving a token request (e.g., see arrow 4312). The token request maybe transmitted from an end-user communication device, such as any devicedescribed herein. In one embodiment, the request is transmitted from amobile terminal, such as for example device 138. The request may bereceived from another device, such as device 142, however, the requestis transmitted using a communication pathway of another end-usercommunication device, such as for example, device 138. The tokenrequest, such as transmitted via arrow 4312, may be received at a hostedservices server (e.g., hosted services server 4306). Hosted servicesserver may be similar to server 134 shown in FIG. 1. The token requestmay request an upload token (such as from the hosted services server4306) that is configured to authorize transmission of a media file to ahosted proxy server, such as 4308. The token request may be conductedover a secure communication channel. In one embodiment, the tokenrequest may be conducted over an API call, such as by using softwareand/or services commercially available from Apigee Corporation, 260Sheridan Avenue, Suite 320, Palo Alto, Calif. 94306, USA. Thecommunications may comprise credentials of a user of the end-usercommunication device (which may be synonymous with the end-user deviceitself in certain embodiments) with respect to the hosted servicesserver 4306. In certain embodiments, the user-credentials configured toallow the user one or more access privileges to the hosted servicesserver 4306 may be unique to the user, yet in other embodiments, thecredentials may be device specific, and in still yet furtherembodiments, the credentials may be user and device specific. In yetfurther embodiments, the credentials may be applicable to a group ofusers and/or devices, such as to permit a team, league, trainingfacility or the like to have a common credential specific to at leastone access privilege. Of course, those skilled in the art willappreciate that different privileges may be granted for differentcredentials, thus a user may have a first credential that isuser-specific that is configured to permit a first access-privilege, asecond credential that is device specific configured to provide a secondaccess privilege, and/or a third credential that is not user specific.Further, at least one of the access privileges may overlap with anotheraccess privilege.

As shown with process 4314, a token may be transmitted down to end-usercommunication device 4304. In one embodiment, systems and methods mayverify the credentials as a condition to transmitting the token. Incertain embodiments, a different token may be transmitted based uponwhether one or more credentials could be validated. One or morenon-transitory computer-readable mediums may comprisecomputer-executable instructions that when executed by a processorperform methods for generating and/or utilizing one or more tokens, suchas those described herein. As one example, one or more of the servers,including but not limited to server 4306) may be used to create aone-time token for an authenticated user (and/or end-user device). Thetoken may be specific to a file, file type (e.g., video, data, document,music, media), device, time frame, and/or one or more criteria. Thetoken may be transmitted to the end-user communication device, e.g.,process 4314. The token may be transmitted to the end-user communicationdevice 4304 via the same communication pathway or at least partially adifferent pathway.

Upon transmission of the token to the end-user communication device4304, the one or more files that fulfill the criteria authorized by thetoken and the token may each be transmitted to at least one device, suchas a remote server. In one embodiment, a token may not be transmittedback to the communication device, however, an indication of itsgeneration may be transmitted, such as back to the communication device.For the following embodiments, a media file example will be provided. Inone embodiment, the upload token and the media file may be transmittedto a hosted services proxy server (e.g., process 4316). As shown inFIGS. 43A and 43B, the transmission of the file and/or token may betransmitted directly from the end-user communication device 4304 to thehosted proxy server 4308. A request for the upload and/or reception ofthe upload token or media file may trigger a token validation call,e.g., process 4318. A token validation call may be transmitted from thelocation the media file was or attempting to be loaded up to. As oneexample, a token validation call may be transmitted by hosted proxyserver 4308 and directed towards hosted services server 4306.

The token validation call may be triggered, at least in part, inresponse to the hosted proxy server, e.g., server 4308 receiving theupload token and/or the media file, such as may be uploaded or attemptedto be uploaded from the end-user communication device 4304. Thevalidation call may be received at the hosted services server 4306.

Those of ordinary skill in the art will appreciate that validation ofthe upload token may be conducted in accordance with a plurality ofdifferent processes and/or systems. As one example, one or more token“flags” or electronic markers may be used. As would be appreciated bythose of ordinary skill in the art, one or more flags be set to one ormore criteria. At least one criterion may be binary, such as whether thetoken is expired. Example values may represent “true”/“valid” or“false”/“invalid” (which may be represented via numbers, symbols, etc.).As one example criterion, a first flag may set to valid if the mediafile has not yet been uploaded to a first file sharing location and/or aspecific folder or specific virtual location associated with a specificfile sharing location. In one embodiment, the first flag may be set toinvalid after the file is successfully transmitted. Thus, futureattempts to upload the same file may be caught and denied or otherwisetreated differently.

In accordance with certain implementations, the validation message maybe transmitted responsive to the validation call (e.g., see process4320). It may be configured to authorize transmit the media file to amedia sharing site using credentials of the hosted services server 4306and/or a service associated with hosted services server 4306. In anotherembodiment, the credentials are associated with an individual or entitythat is not the user of the end-user communication device 4304. Incertain embodiments, the credentials are unknown and unavailable to theuser of the end-user device 4304. The validation message may authorize(and/or may initiate the transmission of) the transfer or copying of themedia file from a hosted services server 4306 to a hosted proxy server4308.

Either before, during, or after receiving the validation message,analytics may be performed on the media file (which may be before it istransferred or copied to a sharing location, such as file share location4310). As one example, the media file may comprise a plurality ofsequential images. In one embodiment, image analytics may be performedon at least a portion of the plurality of sequential images to determinea tag for the media file. In one embodiment, a location of a user, asporting device, such as a skateboard, football, baseball bat, bodyparts and/or sensors may be utilized to determine what actions the useror users performed that were captured within the image data contained inthe media file, whether the user(s) performed a predefined sequence ofactivities, whether a trick or action was successfully completed, andthe like. Audio data may also be utilized to determine any of the aboveor other criteria. For example, a user landing a trick successfully mayhave an audio signature that is disguisable from an incorrect trickattempt. In certain embodiments, if certain criteria are not met withina specified time frame represented by the data, then portions of thedata, such as video data may be removed or otherwise hidden from sharingto at least one other device or user. For example, video segments over athreshold time limit without a specific audio signature indicating aperformance of a specific movement of an athletic activity or sportingtrick or play may be removed or otherwise altered. The filed uploadedmay contain raw or processed data from one or more sensors, including asdescribed herein.

Data from one or more of these or other sensors may also be used toprocess the file. In one exemplary embodiment, image data within themedia file may be correlated with other sensor data. Example correlationis not limited to those examples described herein. In certainembodiments, data, such as but not limited to image data, may beprocessed to determine if a user is within a predefined “performancezone”. Examples regarding “performance zones” are provided in herein.Those skilled in the art will readily appreciate that these are merelyexemplary and do not limit this disclosure.

The file may be uploaded to file share location 4310 directed fromhosted proxy server (e.g., process 4322). In certain embodiments, filesmay not be automatically uploaded or copied to a file sharing location(e.g., filed share location 4310) immediately upon receipt, validationand/or being processed or analyzed. In other embodiments, certainprocesses may govern or otherwise regulate the copying or transferringof files following one or more local processes, such as analytics on thefiles. Certain implementations may schedule, govern, or regulate thetransfer of information to one or more file sharing locations. Forexample, certain file share locations may have an upload limit, such asfor example, number of bits of information per unit time, number offiles per unit time, and/or combination thereof. As one example, anupload threshold or throttle may be implemented to regulate the numberof files, types of files, size of files, etc. transferred to the sharinglocation. As one example, if an upload throttle is hit, the serveruploading the file(s)—e.g., the proxy server 4308, may halt all orcertain uploads for a set period of time and queue any received files(or specific type of files) within for that period of time. Once theperiod has passed, a server (which may be the proxy server 4308 oranother device) may resume uploading files to the file location. Theupload may be in a first-in first-out (FIFO) manner, based on content,size, submission parameters (such as certain users may be prioritized,or combinations thereof).

Looking to FIG. 44, example system 4400 may be implemented in accordancewith one or more embodiments of the innovation. An overview will firstbe provided. System 4440 may be configured to be utilized by one or moreend-user communication devices. For example, in one embodiment, end-usercommunication device 4404 and/or 4405 may be utilized to capture, store,and/or transmit electronic data, such as for example, media (e.g.,videos, images, audio, and combinations thereof). In one embodiment,communication devices 4404 and/or 4405 may be the same or similar toend-user communication devices 4304 of FIGS. 43A and 43B. One or more ofend-user communication devices 4404/4405 may be part of what may bereferred to as a first plurality of end-user communication devices whichare configured to be in communication (including two-way communication)with proxy system 4407.

Proxy system 4407 may include a server, such as server 4408 (having aprocessor and at least one non-transitory computer readable medium). Inone embodiment,—not shown in FIG. 44). As explained in more detailbelow, proxy system 4407 may be configured to transmit electronicinformation, such as files (e.g., media files) to a file share location,such as file share location 4410, which in certain embodiments, may besimilar or the same as file share location 4310 of FIG. 43A and FIG.43B. File share location 4410 may be configured to transmit the receivedfiles or data to one or more end-user communication devices. In oneembodiment, file share location may be configured to transmit at least aportion of the received electronic information to one or more end-usercommunication devices, which may include devices that are not within thefirst plurality of end-user communication devices (e.g., end-usercommunication devices 4404 and/or 4405). For example, a second pluralityof end-user communication devices may include end-user communicationdevices 4432-4436.

In accordance with one implementation, one or more of end-usercommunication devices 4404/4405 may include a user services module, suchas module 4404 a of end-user communication device 4404. Services module4404 a may comprise one or more of hardware and/or software that allowsservices to be delivered to an end-user of the respective device. Forexample, in one embodiment services module may comprise an “app” orother computer-executable instructions which may be specificallydesigned and/or compatible for the hardware and/or software environmentof the respective communication device(s). The app may be a “fitness”related app that transmits and/or receives fitness or sports relatedinformation to the end user of the device. The module 4404 a or app maybe configured to permit access to the proxy system 4407. In oneembodiment, communication devices without services module 4404 a and/oran app or software may not be able communicate with at least one port orinterface of proxy system 4407. At least a portion of communicationswith proxy system 4407 by services module 4404 a or any portion ofcommunication device 4404 may be enabled without the user having tomanually provide credentials. In other embodiments, only certainofferings, such as the ability to upload videos or other files to theproxy system 4400 may only be available with those devices with (andthere may be overlap): services module 4404 a, an app, active software,specific hardware, and/or combinations thereof.

In certain embodiments, end-user communication device 4404 a may beconfigured to be in communication (including two-way communication) withproxy system 4407, such the ability to upload files, such as videoscomprising image data of a user performing athletic activities and/orsensor data, to proxy server 4408. Those skilled in the art willappreciate that any electronic information may be uploaded. Proxy server4408 may be similar to or identical to hosted proxy server 4308 of FIGS.43A and 43B. Proxy server 4408 may be configured to implement one ormore processes acquire or receive files, such as videos, in accordancewith one embodiment. In certain embodiments, proxy system 4407 and/orproxy server 4408 may include a hosted services server, such as hostedservices server 4306 shown in FIG. 43A and FIG. 43B. In this regard,reference to proxy server 4408 may encompass one or more discretemachines, each of which may have their own processor and non-transitorycomputer-readable medium as well as a single machine. Proxy server 4308may have one or more queues. For example, proxy server 4408 may have afile share upload queue (e.g., upload queue 4408 a) and a proxy storagequeue (e.g., storage queue (4408 b). Proxy server 4408 may have one ormore non-transitory computer-readable mediums that when executed by aprocessor are configured to perform at least an automated upload task.Uploading to one or more devices (e.g., servers), such as a file sharinglocation, e.g., file share location 4410 a (which may be similar oridentical to file share location 4310 of FIGS. 43A and 43B) may occurindependently of storage of one or more of the same files and/orderivatives or portions thereof, to the proxy system 4407. In oneembodiment, a storage queue (e.g., queue 4408 b) for uploads to thestorage of the proxy system 4407 (such as on proxy server 4408) may betriggered via an API call that specifies how many files (e.g. videos) orsize of files to upload to the proxy server 4308.

FIG. 45 is a flowchart 4500 of an example method of using twoindependent queues according to certain embodiments of this disclosure.Flowchart 4500 may be implemented in proxy system 4400. In oneembodiment, files in queue 4408 b may be taken up for analysis and/orstorage (e.g., block 4502 of FIG. 45). An API may be configured toschedule the storage of a set of queued files e.g., next “X” videos,where X is a predetermined value. Another API with different parametersmay be configured to schedule the transmission of the same file and/or aderivative or portion thereof to the file share location 4410. One ormore methods may be used to determine if more files are requested orotherwise ready for transmission to a file share location (e.g.,decision 4504). If at decision, For example, it may be determinedwhether to store more files received from one or more of the firstplurality of end-user devices (e.g., devices 4404 and 4405).

The storage of files within proxy system 4407, such as at the proxyserver 4408 may occur before, during and/or after analysis of the files.For example, storage queue 4408 b may be used to queue up the receivedfiles for analysis and only certain files or portions thereof areretained for long-term storage. In yet another embodiment, after beingstored, analytics may be performed on the files and/or a copy of thefile and/or a portion thereof may be saved (in addition to or instead ofthe original file). As one example, the media file may comprise aplurality of sequential images. In one embodiment, image analytics maybe performed on at least a portion of the plurality of sequentialimages. For example, the video could be parsed to determine what modelor style the user's shirt, hat, skateboard (or any other type ofequipment or object) is. In certain embodiments, this information may beused to determine a tag for the media file. In one embodiment, alocation of a user, a sporting device, such as a skateboard, football,baseball bat, body parts and/or sensors may be utilized to determinewhat actions the user or users performed that were captured within theimage data contained ins of the media file, whether the user(s)performed a predefined sequence of activities, whether a trick or actionwas successfully completed, and the like. Audio data may also beutilized to determine any of the above or other criteria. For example, auser landing a trick successfully may have an audio signature that isdisguisable from an incorrect trick attempt. In certain embodiments, ifcertain criteria are not met within a specified time frame representedby the data, then portions of the data, such as video data may beremoved or otherwise hidden from sharing to at least one other device oruser. For example, video segments over a threshold time limit without aspecific audio signature indicating a performance of a specific movementof an athletic activity or sporting trick or play may be removed orotherwise altered. The filed uploaded may contain raw or processed datafrom one or more sensors, including as described herein.

In certain embodiments, only those communications devices that meetpredefined criteria may be used to access the files stored on the proxyserver 4408 (for example, as opposed to being transmitted and stored ata file share location). In certain instances, files added to a proxyserver, e.g., server 4308, or other location may be directly accessiblefrom that location. The files may be directly accessible with a uniquecode, such as for example, a URL (Universal Resource Locator) andmetadata provided by an API endpoint on a device, such as the proxyserver 4308. In certain embodiments, API authentication may beimplemented. In one embodiment, only communications devices having aservice module, such as service module 4404 a, or service module in acertain state (e.g., active) may be used to access the files stored onthe proxy system 4407, such as proxy server 4408. For example, lookingto the illustrated embodiment of FIG. 44, the first plurality ofcommunication devices (e.g., communication devices 4404 and 4405) may beable to access the files stored (such as after being processed bystorage queue 4408 b) on the proxy system 4407, however, the secondplurality of devices 4430 (including for example, communication devices4432, 4434 and 4436) may not have access to those files.

Such systems and methods may be advantageous for numerous reasons. Asone example, it may allow a more tailored experience to those usersknown to have certain hardware and/or software configurations. It mayalso permit different access rights for those users having an app orotherwise have access to a specific resource. For example, only thoseusers who have an app installed on their communication devices may beable to playback the stored files (or otherwise have certain accessrights to those files or a portion thereof) that is not available to thesecond plurality of communication devices 4430. In another example, itmay be advantageous for an entity to distribute resources (such asvideos) to a larger audience, such as by uploading via upload queue 4408b, however, want to ensure that resources are available to those usingits app or otherwise meet criteria, such as have uploaded, downloaded,edits, altered, and/or commented on media. Further aspects of thesefeatures will be discussed below.

As shown in FIG. 44, proxy system 4407 may include an upload queue, suchas upload queue 4408 a, configured to upload the files (and/orderivatives or portions thereof) received from the first plurality ofcommunication devices (e.g., 4404/4405). Upload queue 4408 a may be partof proxy server 4408. Upload queue 4408 a may be operated independentlyof storage queue 4408 b. As merely one example, either one or both ofthe upload queue 4408 a and/or the storage queue 4408 b may scheduleuploads to a non-transitory computer-readable medium as new files areavailable. This may occur until a specified number of videos or amountof electronic information has been uploaded. Calls to this endpoint maybe considered additive, that is, if a previous call asked for 100 files(or type of files) but only 50 have been uploaded and a new request for100 files (or specific type of files) comes in, then a device, e.g., aproxy server, will have a target of 150 files (or type of files) toupload. In accordance with some embodiments, if more files are notrequested by the storage queue 4408 b, the current files may be uploadedto the upload queue 4408 a and subsequently uploaded to the file sharelocation 4410 in accordance to rules of the queue. In one embodiment, itmay be determined that more files are requested, and as such the file isuploaded to the both queues 4408 a/4408 b. Files may be stored inaccordance with the rules of the respective queues. In one embodiment,file information, such as URLs and/or metadata may be stored andassociated with the storage of the file(s) on the proxy system 4407and/or the file share location 4410. For example, communication deviceswithin the first plurality of communication devices (4404/4405) may bedirected in accordance with a first URL or identifier and communicationdevices within the second plurality of devices 4430 may be directed inaccordance with a second URL or identifier.

Following transmission of the file(s) to a sharing site, such as videofiles to a media sharing site (e.g., file share location 4410) a uniqueidentification code representing the location of the media file on themedia sharing site may be transmitted to at least one electronic device.For example, as shown in FIG. 43A, the unique identification code may betransmitted the hosted services server 4306 of FIG. 43A, which may bevia the hosted proxy server 4308 as an intermediary (e.g., see processes4324 and 4326 shown in FIG. 43A). As discussed above, proxy system 4407of FIG. 47 may include a hosted services server 4306 or its equivalent,thus reducing the quantity of connections required to transmitinformation. In another embodiment, it may be transmitted to theend-user communication device 4304 which may be via the hosted proxyserver 4308 as an intermediary (see, e.g., processes 4324 and 4328 shownin FIG. 43B). In yet another embodiment, it may be transmitted to anydevice other than an end-user communication device within the firstplurality of end communication devices (e.g., either of devices4404/4405) and/or multiple devices including at least one of theend-user communication device within the second plurality ofcommunication devices 4430 (including devices 4432-4436), the hostedservices server 4306 and/or the hosted proxy server 4308.

In one embodiment, one or more of the end-user communication deviceswithin the second plurality of communication devices 4430 may be able toaccess certain files uploaded from the first plurality of communicationdevices (4404/4405). In certain embodiments, the first and secondplurality of devices may access different files that contain the samecontents. For example, if a user of the end-user communication device4404 desired to view file S9P3G10 from user CRG330, then the content maybe received from a file stored on the proxy system 4407, however, if auser of end-user communication device 4432 wanted to consume or retrievethe same content from the same user, it may be received from the fileshare location 4410.

Further aspects of this disclosure relate to creating and implementingcompetitive virtual match-ups for a plurality of remote users. In oneembodiment, users may be matched up for a competitive game between twoor more competitors (which may be local or remote) based upon theirrespective skills level performing predetermined physical activity, suchas for example, skating tricks. At least one remote player mayparticipate over a remote electronic communication channel.

According to one aspect, users with equivalent skills may be matched upto create competitive games. As one example, a game of “SKATE” may be agame (much like the game “HORSE” played by basketball players) in whichtwo or more users take turns attempting a certain move or trick. Videomay be captured of two or more users performing movements, such asskating tricks. For local users, the users may take turns capturing dataof another player doing skating tricks. The data may include capturingimage data, such as video data, and/or other sensor data. For example,an end-user communication device may comprise a camera that may be usedto capture images of a user skating. The same or different device maycapture sensor data of the user's physical movements before, during orafter the trick. In one embodiment, a non-image capturing device may beused to determine when to capture images of the user performing thetrick. Certain embodiments may provide instructions as to what angles tocapture movements on. Further embodiments may require the capturedimages to meet threshold criteria, such as for example, be captured at aspecific frame rate, by a specific device, at a specific angle or rangeof angles, and/or one or more criteria discussed herein, includingevaluation of audio information included within the captured data. Inone embodiment, failure to account for one or more criteria may resultin an application not capturing, using, or sharing the data or a portionthereof. (as well as not sharing it within specific virtual locations(e.g., videos featuring good plays or tricks. Further embodiments maypenalize one or more players if a criterion is not met or met within acertain time period. According to one example game, if the usersuccessfully completes a trick, their opponent must successfullycomplete the trick or they receive a letter of a word, such as “SKATE”.In one such embodiments, the users may play in-turn and whoever spellsthe word “SKATE” first loses the competition. Further examples of“SKATE” or other competitive sessions are provided throughout thisdisclosure. Further, aspects of a “trick tip video” as discussedthroughout this disclosure, including at least paragraph 121 may beutilized.

In accordance with certain embodiments, movements (such as tricks)performed by the users may be analyzed. A score may be generated foreach trick based on the number of times they have landed a trick. Inanother embodiment, a proportion of successful tricks may be utilized inthe calculations. In certain embodiments, only tricks attempted and/orcompleted during specific times, games, and/or meeting other criterionmay be used in the scoring. For example, tricks attempted or completedduring a “SKATE” game with at least one other user may be eligible forconsideration. In yet another embodiment, only those tricks attempted orcompleted outside of specific games may be eligible for consideration.Analysis of the trick may consider the location of the trick on ahierarchical arrangement, such as for example, a trick tree. Exampletrick trees are shown in U.S. Prov. App. No. 61/874,248, filed Sep. 5,2013 and U.S. Non-provisional application Ser. No. 14/292,411, the fulldisclosures of which are incorporated herein by reference in theirentirety, for any and all non-limited purposes.

One or more algorithms may be utilized in determining a score for one ormore users. As one example, as discussed above, the score of a user'strick may be based on the number of times they have attempted a trickand the number of times they have landed that trick. For example, ascore for a trick for a specific user may increase a first value (e.g.+1 point) for each time they have landed the trick, and a second value(e.g., +0.1) for each time they attempt but do not land the trick. Thus,even when failing to perform a trick (or to a certain threshold level ofsuccess), the user's score may increase, however, at a lesser value thanif they completed the trick (or met a threshold level of success). Thethreshold level of success may vary according to the trick. As oneexample, a more difficult trick may have a higher threshold level ofsuccess. Information regarding a user's performance across multiplemovements (e.g., tricks) may be utilized to match users to others whosetrick scores most closely match. Scoring may consider hierarchicalstructures, such as for example, as discussed throughout thisdisclosure. Analysis and/or scoring of the user's movements may also beused to recommend apparel, and/or locations. Example recommendations arelocated throughout this disclosure.

For example, Table 1 shows an example matrix that may be used:

TABLE 1 Example matrix for scoring users Trick User 1 User 2 DifferenceTrick 1 532 25 27.2 +0.2 Trick 2 022 30.5 34.5 +4.0 Trick 3 440 26 25.8−0.2 Total = 4

At least a portion of the information regarding users' performance maybe used for matching. For example, based on this matrix shown in Table1, a difference between the scores for each trick may be used. Anopponent may be chosen based on the lowest score based on this analysis.In yet another embodiment, a user may want to compete against other userwho is closely matched for “rail” tricks without regards to “ramp”tricks. Thus, certain criterion, such as type of tricks may be utilizedin one or more implementations. Users may be prevented from re-playingthe same partner if they have been paired up in a certain quantity ofgames in sequence or during a predetermined amount of time.

Further aspects relate to providing results of a competitive game orsession that is sharable. In one embodiment, a unique website may becreated. The site may provide or display videos from the game in achronological order so the entire game can be reviewed. The website mayindicate which tricks were landed and which were missed. For those gameslike “SKATE”, special emphasis may be placed on when a letter wasassigned. Further data, such as non-image sensor data may be associatedwith the videos and/or present even in absence of video data. Thewebsite may be publicly available and may in certain embodiments besharable on social networks, such as by using the unique URL oridentification code.

Further aspects relate to dispute resolution for situations in whichparticipants may not agree on the outcome of a trick or performance ofan activity. When there is a disagreement, a game may be paused as thetrick goes through a dispute resolution process. In one embodiment, allusers of specific software or hardware resources, such as an app will beable to review disputed videos and vote on whether the trick was landedor not. In yet other embodiments, only users currently using theapplication are eligible. In yet another embodiment, only users having athreshold score or achievement relating to the trick in question may beeligible. The votes may be based entirely on captured video thatincludes the user performing the trick. In yet other embodiments,further data may be considered, such as non-image sensor data. In oneembodiment, a threshold quantity of “votes” may determine the outcome.In yet another embodiment, a threshold difference may be required. Forexample, in one embodiment, when three votes up or down (e.g., yes thetrick was successful or no the trick was not successful) more than thealternative are received on a disputed trick, the dispute will beconsidered resolved and the game will commence. Another embodiment mayconsider time restraints, either alone or in combination with othercriterion. In another example, after 1 hour or 5 votes (or alternatively1 hour and 5 votes) have been cast, the dispute is decided. If after acertain period of time, neither is met, a community manager at maydecide. In certain embodiments, users will not be able to choose whichvideo disputes they resolve to avoid collusion, but will be shown randomdisputes. Users who review disputes may be incentivized via in gamerewards such as badges.

Further aspects permit athletes to dynamically adjust the displaying ofa sequence of images, such as a video, animation, and/or other sequencesof image data. In one embodiment, a User Interface (UI) may beconfigured to assist athletes—both professional and amateur—to learn newmoves, skills, tricks and/or assist in providing feedback/training tothe athlete. Further, providing novel UIs to those reviewing tricks,such as during the dispute resolution embodiments above, may aid inaccurately determining whether a trick was successfully performed and/orscoring certain performances.

As one example, a multi-angle player viewer may enable users, such asskaters, to learn a trick, in detail, from a dynamic UI, which may beviewable from any display device, such as for example, a mobiletelephone display. The UI may be configured to accept user inputs in amanner that users are not required to press any buttons or navigatemenus to learn one or more tricks. In one embodiment, the UI may beconfigured such that the UI is responsive to one or more trick playcommands from a user. For example, in one embodiment, the user may beable to view at least a portion of the sequence of images in a forwardor reverse motion. The motion may be slower or faster than real-time.

In accordance with certain embodiments, one or more of these featuresmay allow athletes, such as skaters, to learn how foot placement on theboard as recommended by a professional (or trainer) when setting up forspecific trick. Other information that may be conveyed may be how theuser should be approaching an obstacle like a ledge, handrail,transition, etc. and/or how they should be flicking the board for atrick. In certain embodiments, the UI may display one or more sequenceof images to the user as an instructional tool. At least a portion ofthe one or more images may be displayed or recommended for display basedupon sensor data, including but not limited to data collected from oneor more of the sensors described herein. As one non-limiting example, ifsensor data (which may be from a wrist-worn device, a shoe, and/orgathered from image data as some examples) indicates that a user isimproving with respect to performance of a specific trick, then maybe aharder version of the trick may be displayed to the user. Yet in anotherembodiment, if the user is showing difficulty with a trick or part of atrick than that trick, portion of the trick, or fundamental movement maybe displayed to the user. In accordance with certain implementations,these decisions may implicate one or more of the “trick tree” aspectsdisclosed herein.

Regarding display speed of the trick, such as through a plurality ofimages, multiple playback speeds may be available, such as for example,normal speed, slow motion and super slow motion, which may for examplebe 1× (normal speed), 0.5× (half speed), and 0.25× (quarter-speed). Inone embodiment, the UI may be operatively configured such that a sensor,such as an accelerometer, detects rotation, tilting, or other forcesacting on a device, such as a mobile telephone. The playback speed ofthe sequence of images may be controlled by the tilt of the device inone example. In one example embodiment, as a user rolls the devicetowards them in a first direction, the playback of a sequence of imagesmay be slowed down from normal, to slow and then optionally to superslow. Tilting the device back away from the user, such as in a directionopposite the first direction, may increase the playback speed of thevideo. For example, in one embodiment, the sequence of images may beinitially displayed at 0.5× (a.k.a., half time), and tilting the device22.5 degrees forward in the first direction slows the video down toquarter time (0.25×), tilting the device 22.5 degrees back to theinitial position may return the displaying of the sequences to 0.5×.

One example implementation may include the following code:

  CGFloat rate = 0.0f;   CMAttitude *attitude =self.motionManager.deviceMotion.attitude;    CGFloat roll =attitude.roll;   CGFloat threshold = M_PI_4 / 4;   CGFloat previousRoll= self.previousRoll; NSNumber *speed;    if (roll <= previousRoll −threshold) {    rate = 2.0f * videoDirectionInteger; speed = @3;   }else if (roll > previousRoll + threshold) {    rate = 0.5f *videoDirectionInteger; speed = @1;   } else {    rate = 1.0f *videoDirectionInteger; speed = @2; }[weakSelfperformSelectorOnMainThread:@selector(updateImageViewSpeed:)withObject:speed waitUntilDone:NO];   if(self.videoPlayerManager.rate == 0.0f)    return;   self.videoPlayerManager.rate = rate;  }];

In yet another embodiment, a UI may be configured to receive a userinput that dynamically changes a plurality of images. In one embodiment,the UI may have a plurality of sequences that may be selectivelydisplayed. A first set may show an action, such as a skating trick,being performed from a first perspective and a second set may show thesame action at a second perspective. The second set of images may beconfigured at the same interval as the first set of image with respectto relative time, such that the second set of images may be displayed tothe user in a seamless manner, even during viewing the first set andswitching to the second set. Thus, certain embodiment have a second setthat only differs from the first set by making the same actions appearto be taken at a different perspective. Those skilled in the art willappreciate that other embodiments may have 3D modeled animations suchthat there is no actual switching out a first set of images for a secondset of images but rather the images displayed are based upon a differentperspective being selected. In one embodiment, the user may be able to“swipe” a display device or other physical structure to observe adifferent perspective of the action and/or to change the set of imagesbeing displayed. Altering perspectives that the user is able to view maybe important in various situations. As one example, although most usersmay have a problem placing their right-foot at a specific location of askateboard during performance of a specific trick, one user may have anissue placing his/her left foot. In a first angle or perspective, theleft foot's location may not be readily observable, especially withrespect to timing of placement; therefore, a different perspective mayassist that user in learning the trick.

Further aspects relate to a personalized trick tree for at a user. Usingtags, such as those from the automated processes described above, otherprocesses, associated sensor data and/or user input, video data may beorganized according to performance of specific tricks, locations, and/orchronological improvement. A visual interactive report may show graphsor other visual indicia that categorize specific tricks performed intocategories (such as obstacles utilized), location, comparison with otherusers, equipment/apparel used, and/or correlation of one or more ofthese criteria with each other or different criteria.

Conclusion

While the invention has been described with respect to specific examplesincluding presently preferred modes of carrying out the invention, thoseskilled in the art will appreciate that there are numerous variationsand permutations of the above described systems and methods. Forexample, various aspects of the invention may be used in differentcombinations and various different sub combinations of aspects of theinvention may be used together in a single system or method withoutdeparting from the invention. In one example, software and applicationsdescribed herein may be embodied as computer readable instructionsstored in computer readable media. Also, various elements, components,and/or steps described above may be changed, changed in order, omitted,and/or additional elements, components, and/or steps may be addedwithout departing from this invention. Thus, the invention should beconstrued broadly.

We claim:
 1. A computer-implemented method comprising: receiving at ahosted services server, a token request transmitted from an end-usercommunication device, requesting an upload token from the hostedservices server configured to authorize transmission of a first mediafile to a hosted proxy server; upon validating a user of the end-usercommunication device using end-user credentials to the hosted servicesserver, transmitting the upload token to the end-user communicationdevice; receiving at the hosted services server, a token validation callfrom the hosted proxy server; transmitting a validation message from thehosted services server to the hosted proxy server configured toauthorize transmission of the first media file from the hosted proxyserver to a media sharing site using credentials of the hosted servicesserver, receiving, at the hosted services server, a uniqueidentification representing a location of the first media file on themedia sharing site, wherein the first media file comprises a pluralityof sequential images; and conducting at one or more of the hosted proxyserver and the hosted services server, image analytics on at least aportion of the plurality of sequential images to determine a tag for themedia file.
 2. The method of claim 1, wherein the validation of the userof the end-user communication device is conducted without the end-userdevice providing any credentials to the media sharing site and in whichthe end-user device is does not transmit any credentials specific to themedia sharing site as part of the validation.
 3. The method of claim 1,wherein the token validation call from the hosted proxy server is inresponse to the hosted proxy server receiving the upload token andeither: (1) the first media file from the end-user communication device;or (2) a request from the end-user communication device to upload thefirst media file to the hosted proxy server.
 4. The method of claim 1,further comprising: receiving, at the end-user communication device, aunique identification representing a location of the media file on themedia sharing site.
 5. The method of claim 1, wherein the end-usercommunication device is a first end-user communication device, and themethod further comprising: storing the file or a portion thereof on thehosted proxy server, wherein the file stored on the hosted proxy serverand the media sharing site is retrievable by the first end-usercommunication device, and the file stored on the hosted proxy server isnot retrievable by a second end-user communication device.